----
# Info

* bower.json : Bower config.
* package.json : NPM dependencies.
* rev-manifest.json : Dynamically generated file that manages our css/js revisions.
* build.js  : Require config file.
* shipitfile.js : deployment via Shipitjs. Make sure to `npm install -g shipit-cli`. This is where we create our deployment environments (e.g. 'staging', 'production')
* gulpfile.js : Gulp configuration.

# Dev Setup
1. `git clone REPO_LINK`
2. `cd project-folder`
3. `git checkout dev`
4. `npm install`
5. `bower update`
6. `gulp` will start the default watch task and you can start working on the 'src/app' folder

# Prepare Staging Server
1. Create folder 'dev-PROJECTNAME.studiopalms.com/'.

# Update Codebase if config files change
1. `git pull`
2. `npm install`
3. `bower update`

# Build
1. `gulp build --push` to create the dist folder and push to master branch.
This is a combination of `gulp build` and `gulp push master` tasks.

# Roll Back Deployed Code
TODO

# Deployment
Deployment is managed by [shipit deploy](https://github.com/shipitjs/shipit-deploy). If you will be deploying projects, famliarize yourself with how to configure this tool.
### Deploy to Staging Server
1. Login to the staging server and set up required ssh keys and domains for your Bitbucket project and local machine.
2. Make sure you've prepared the staging server.
3. `gulp build --push` to make sure the master branch contains the code you are trying to deploy.
4. `shipit staging deploy` to deploy to our staging environment.
5. If you are deploying a Wordpress project for the first time, login to the staging server and add your wp-config.php file to the 'revisions' folder.
6. If this is the first time deploying, ensure that your subdomain points to the  'dev-PROJECTNAME.studiopalms.com/current/' folder.

### Production Server
