grunt-deliver v0.0.1-alpha
Deliver codebase to remote server.
Getting Started
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-deliver --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt;
Deliver task
Run this task with the grunt deliver
command.
Task targets, files and options may be specified according to the grunt Configuring tasks guide.
Options
driver
Type: String
Default: lftp
Values: lftp
, rsync
(yet not supported)
Declare protocol used for data transfer.
patterns
Type: Array
Values: bower
, composer
, dev-node
, git
, github
, ide
, laravel
, npm
, phpunit
, sass
Identify project nature. Each pattern include some deploy ignore definitions.
auth
Type: String
src
Type: String
target
Type: String
backup
Type: Object
- enabled: true,
- stamp: 'yyyymmddHHMMss',
- keep: 4
cache
Type: Array
connection_limit
Type: Integer
parallel_count
Type: Integer
notify
Type: Array
messages
Type: Object
Example
Basic stage/production configuration
grunt;
Ignore file
You can define which files or folders needs to be excluded in .deliver-ignore
file.
Wildchars are supported. For folders use /
suffix.
.deliver-ignore example:
.git/
node_modules/
temp/
.deliver-secret.yml
.gitignore
Secrets
Secret data are stored in .deliver-secret.yml
file for local development only.
If you do put this filename to .gitignore
!
.deliver-secret.yml example:
stage: host: [HOSTNAME] user: [USERNAME] password: [PASSWORD] production: host: [HOSTNAME] user: [USERNAME] password: [PASSWORD]
Environment variables
For building with your production runners like Jenkins, etc. use environment variables and consider to keep passwords encrypted.
Task checks variables in this name format:
DELIVER_[TASK_TARGET]_(HOST|USER|PASSWORD)
;
EnvInject plugin example:
JenkinsDELIVER_STAGE_HOST=yourhost.com DELIVER_STAGE_USER=username
Store passwords in "password values" section.