Skip to content

Latest commit

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

lets-git-pull

git-pull deployment management for Lets. Basically provides the same functionality as capistrano.

Current state

Getting started

See Lets for how to install lets.

Install lets-git-pull:

npm install lets-git-pull

Create the following Letsfile.js:

vargitpull=require('lets-git-pull');module.exports=function(lets){// Create a stagevarstagename=lets.Stage({host: '1.2.3.4',username: 'username',password: 'asdasd',agent: process.env.SSH_AUTH_SOCK,agentForward: true,repository: 'git@github.com:letsjs/lets-git-pull.git',remotePath: '/var/lets/sitename'});// Add your own instructions, like symlink to the server's folderstagename.on('deploy:publish',function(options,done){this.getConnection(function(c){c.exec('ln -nfs '+options.current+' /var/www/site.com',done);});});// Deploy using git pullstagename.plugin(gitpull());// Add the stage to letslets.addStage('stagename',stagename);};

Then run this in the terminal:

lets deploy:setup stagename
lets deploy:check stagename
lets deploy stagename

That's it! More examples will come later.

Usage

lets-ssh options:

The following options may be used but not specific to this plugin, see lets-ssh for more information:

  • host (required)
  • username (required)
  • password
  • agent
  • agentForward
  • tryKeyboard

Required options:

options.repository
The url of the repository.

options.remotePath
The path where the files will be put on the remote, without trailing slash.

Optional options:

options.branch = 'master'
The branch to checkout. Default is master.

options.keepRevisions = 5
How many revisions to keep on cleanup. Default is 5.

options.removeOldRevisionOnRollback = true
Whether or not to remove the old revision on rollback.

Options made available by lets-git-pull:

options.currentPath
The absolute path to the folder where the current revision is stored. Available after deploy:update.

options.current
The absolute path to the symlink ([remotePath]/current) to the current revision. Use for e.g. symlinking the project to the webserver's public-html file. Available after deploy:publish.

options.oldRevision
The absolute path to the folder where the old revision is stored when rolling back. Available after deploy:rollback.

Contribution

See guidelines for lets.

Tests

Run tests using npm test, grunt test or make test. You need to set up your own SSH-server to test against. On OS X a really simple way is to simply enable Sharing->Remote Login (preferably on a for this purpose designated account). However on OS X (and any other server which doesn't use GNU CLI tools) you also need to install GNU find (using e.g. brew install findutils --default-names), since the tests use a flag (-printf) which the BSD version doesn't support.

When you have an SSH-server to test against, copy test/config-sample.js to config.js and enter its details.

About

Deployment management for Lets using git pull

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages