A simple Grunt task to replace eb deploy
from the Elastic Beanstalk CLI, which also allows deploying a
custom application distribution instead of the entire repository root.
To use this task, you should install the AWS SDK CLI and configure your credentials
first with aws configure
.
This plugin requires Grunt ~0.4.0
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-eb-deploy --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-eb-deploy');
In your project's Gruntfile, add a section named ebDeploy
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
ebDeploy: {
options: {
// Task-specific options go here.
},
your_target: {
// Target-specific file lists and/or options go here.
},
},
});
ebDeploy
uses grunt-contrib-compress
internally to generate a ZIP archive before uploading it
to ElasticBeanstalk. For reference on how to specify file lists, please see the
compress task documentation
Type: String
Default value: us-east-1
The AWS region to deploy the application to.
Type: String
Required: true
The ElasticBeanstalk application name.
Type: String
Required: true
The ElasticBeanstalk application environment to update.
Type: String
Default value: .tmp/dist.zip
The location of the ZIP archive to generate before uploading to ElasticBeanstalk.
Type: String
Default: none
The local credential profile to use for the AWS SDK (see "Using Profiles with the SDK" section of the Node AWS SDK docs.)
Deploy to a single application environment.
grunt.initConfig({
ebDeploy: {
options: {
application: 'eb-test-app',
environment: 'eb-test-app-dev'
},
files: [
{ src: ['.ebextensions/*'] },
{ cwd: 'dist/', src: ['**'], expand: true }
]
},
});
Deploy to multiple environments of an application.
grunt.initConfig({
ebDeploy: {
options: {
application: 'eb-test-app',
},
dev: {
options: {
environment: 'eb-test-app-dev'
},
files: [
{ src: ['.ebextensions/*'] },
{ cwd: 'dist/', src: ['**'], expand: true }
]
},
prod: {
options: {
environment: 'eb-test-app-prod'
},
files: [
{ src: ['.ebextensions/*'] },
{ cwd: 'dist/', src: ['**'], expand: true }
]
},
},
});
Ok, so I'm new to this. Changed task name to match Grunt conventions.
Added ZIP archive generation.
Added credential profile support.
Initial release.