Custom grunt plugin for teamCity and autodeploy source
This plugin requires Grunt ~0.4.5
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-teamcity-deploy --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-teamcity-deploy');
There are 3 task for auto-deploying (contains 3 tasks):
// 1) Copy zip-pack of project to ENV from TeamCity
$ grunt deploy:development:[env]
// 2) Start web-server and unit-tests checking on TeamCity
$ grunt deploy:development:tests
// 3) Run web-server on ENV (without testing) for showing in browser
$ grunt deploy:development
We have 2 TeamCity projects:
grunt tasks for it:
command:
$ grunt deploy:development:[env]
where [env] is: dev, stb, nxt, cli, * ([env] getting from TeamCity build-params) targets:
— remove old pack dir and zip file inside
— make new pack dir
— compress project to new zip pack
— copy zip pack to auto-deploy server path (like so: /u03/deploy/dev/hoothoot/)
command:
$ grunt deploy:development:tests
targets:
— change host of nodejs-server from 'localhost' to 'hs-ws-tkachenko.local' (by uname -n)
— start server
— run jasmin/sencha unit-tests throw phantomjs
$ grunt deploy:development
targets:
— change host of nodejs-server from 'localhost' to 'hs-ws-tkachenko.local' (by uname -n)
— start server
grunt.initConfig
deploy: // deploy task
development: // deploy:development configeration (it is just a task, and could be more then one)
options:
compress:
dir: "packer"
archive: "packer.zip"
includes: '.'
excludes: '.git/**\\* node_modules/**\\*'
copyTo: // full path will be: /u03/deploy/[env]/hoothoot/
server: "/u03/deploy/"
env: "*"
dir: "/hoothoot/"
startServerTasks: ['connect:server'] // run server tasks
compressing pack option
compressing pack option
creating dir for copy zip pack
path witch files/dirs include to zip pack
path witch files/dirs NOT include to zip pack
where to copy for auto-deploy full path will be: /u03/deploy/[env]/hoothoot/ where [env] may be: dev, stb, nxt, cli,
part of path to copy (part1: server)
part of path to copy (part2: environment. It gets from run task, like so: grunt deploy:development:nxt )
part of path to copy (part3: dir or project)
run server tasks
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
2014-06-03 v0.1.5 final works tasks
2014-06-02 v0.1.0 base task scheme created