grunt-up

1.0.7 • Public • Published

Grunt Deploy Task ( grunt-up )

Grunt task for deploying new releases

Installation

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-up --save-dev

After package installed you need to load task by adding this link in your grunt file

grunt.loadNpmTasks('grunt-up');

How to use

Add new key in your grunt file on grunt.initConfig.

up: {
    live: {
        options: {
          servers: [{
            host: 'example.com',
            username: 'root',
            password:'password',//not required if privateKey is present
            privateKey: process.env.HOME + '/.ssh/id_rsa'
          }],
          execute : {
            before: [], //list of commands or just a string with sh command
            after: [],
          },
          sourceprocess.cwd() + '/dist/*',
          dest: '/var/www/app'
        }
    }
},

Create task for deploying yout application versioned. This will increment version from your package.json file and will create and commit a tag with version to git. Grunt shell is required for this. Install it with npm install grunt-shell

Execute task with: $ grunt deploy:major or $ grunt deploy:minor

...
shell: {
  versionminor: {command'npm version minor'},
  versionmajor: {command'npm version major'},
  versionpatch: {command'npm version patch'},
},
 
up: {
  live: {
    options: {
      servers: [{
        host: 'albulescu.ro',
        username: 'root',
        privateKey: process.env.HOME + '/.ssh/id_rsa'
      }],
      execute : {
        before: ['echo @version'],
        after: ['cd @path && pwd'],
      },
      sourceprocess.cwd() + '/dist/*',
      dest: '/usr/share/wallsongs'
    }
  }
},
...
...
grunt.registerTask('deploy', function( mode ){
 
    if(!mode) {
      return grunt.fail.warn('Specify release type "minor", "major" or "patch".');
    }
 
    if( mode == 'major') {
      return grunt.task.run([
          'shell::versionmajor',
          'build',
          'up:live',
      ]);
    }
 
    if( mode == 'minor' ) {
      return grunt.task.run([
          'shell::versionminor',
          'build',
          'up:live',
      ]);
    }
 
    if( mode == 'patch' ) {
      return grunt.task.run([
          'shell::versionpatch',
          'build',
          'up:live',
      ]);
    }
 
    grunt.fail.warn('Invalid release type "minor", "major" or "patch" required.');
 
  });
 

Contribute

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Changelog

  • 1.0.5
  • Bug fixes
  • 1.0.2
  • Add placeholder support for hook commands
  • 1.0.1
  • Bug fix
  • 1.0.0
  • basic functionality of deploying nodejs application

Package Sidebar

Install

npm i grunt-up

Weekly Downloads

0

Version

1.0.7

License

MIT

Last publish

Collaborators

  • albulescu