git-pull deployment management for Lets. Basically provides the same functionality as capistrano.
See Lets for how to install lets.
Install lets-git-pull:
npm install lets-git-pullCreate 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 stagenameThat's it! More examples will come later.
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
options.repository
The url of the repository.
options.remotePath
The path where the files will be put on the remote, without trailing slash.
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.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.
See guidelines for lets.
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.