README
Sneaky
Deployment suite
How to use?
- Install sneaky via
npm install -g sneaky
- Copy Skyfile.coffee (or Skyfile.js/.json) to the root of your project
- Edit the properties of your Skyfile (host, path, user, etc.), for more information read the example below
sneaky d
Feature
- configuate with js/coffee script (Skyfile.js|Skyfile.coffee)
- archive with git
- transport with rsync
- encrypt with ssh
- customized pre hooks and post hooks
Example
sneaky 'sneaky:test', ->
@description = 'Deploy to test environment'
# Version of your project
@version = "v0.0.1"
@user = 'username'
@host = 'your.server'
@path = '/your/destination'
# Ignore the src directory
# Filter pattern
@filter = '''
- src
- node_modules
'''
# Execute before transporting files to server
@before 'coffee -o lib -c src'
# Execute after transporting files to server and link to the current directory
# This script will be executed through ssh command
@after 'npm install --ignore-scripts'
Help
Usage: sneaky <command> taskName
Commands:
deploy deploy application to server
history display previous deploy histories
rollback rollback to the previous version
d alias of deploy
h alias of history
r alias of rollback
Options:
-h, --help output usage information
-v, --version output the version number
-T, --tasks display the tasks
ChangeLog
v2.0.0
- Convert source code from coffee to js
v1.1.6
- Add deployPath to set base source directory on deploy process
- Create temporary directories by timestamp
v1.1.0
- Add
forward
command
v1.0.0
- Configuate with js/coffee script
- Deploy to sub directory with version and timestamp prefix
v0.5.4
- fix load js config file bug
- expand destination option to user,host,port,destination properties
v0.5.3
- auto convert string typed options to array type
- add option descriptions in readme
v0.5.2
- support for .json and .js configuration file
- remove in denpendence
v0.5.0
- change configuration file's format from ini to json
- add
includes
/only
options to fit different situations,includes
is an array mapping to rsync's--include
, as the same asexcludes
,only
is a alias ofincludes
andexcludes
,only: [lib/]
is the same asincludes: [lib/], excludes: *
. (ignore all files except lib directory) - add
nochdir
flag, set this flag to true will deploy the current directory and use all the local files (not only files in git repositories) - fix temp directory name's bug
v0.4.2
- remove
servers
,user
,autoTag
configuration fields, renamedestination
todestinations
- destinations can use the ssh path
user@server:/path/to/directory
or local path/path/to/directory
- support deploy from remote git repositories, e.g.
source = https://github.com/sailxjx/sneaky
v0.3.0
- support use
.sneakyrc
file in current pwd
TIPS
- If you are unfamiliar with rsync's filter rules, read this answer
LICENSE
MIT