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-pull
Create the following Letsfile.js:
var gitpull = require('lets-git-pull');
module.exports = function (lets) {
// Create a stage
var stagename = lets.Stage({
host: '1.2.3.4',
username: 'username',
password: 'asdasd',
agent: process.env.SSH_AUTH_SOCK,
agentForward: true,
repository: '[email protected]:letsjs/lets-git-pull.git',
remotePath: '/var/lets/sitename'
});
// Add your own instructions, like symlink to the server's folder
stagename.on('deploy:publish', function (options, done) {
this.getConnection(function(c) {
c.exec('ln -nfs ' + options.current + ' /var/www/site.com', done);
});
});
// Deploy using git pull
stagename.plugin(gitpull());
// Add the stage to lets
lets.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.
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.