nicolasramy/flow — pull request #5 by nicolasramy (2013-12-04 23:46:34+00:00)
Title: Feature/0.0.1

# How to use

## Python requirements

```
pip install fabric
```

## Installation

1. Just pull this repository
2. ```source bin/flow.sh```
3. Write your configuration file

## Configuration file

```json
{
// Project
"project": {
"name": "cake-blog",
"repository": "git@github.com:nicolasramy/cakephp-blog.git"
},

// Roles
"roles": {
"local": "localhost",
"test": "localhost",
"stage": "www-data@domain.dev",
"master": "www-data@domain.prod"
},

// Environments
// Local
"local": {},
// Stage
"stage": {
"env": "stage",
"host": "www-data@domain.dev",
"workspace": "/var/www",
"app": {
"type": "cakephp",
"web": "nginx_phpfpm",
"databases": {
"default": {
"hostname": "localhost",
"username": "root",
"password": "",
"port": 3306
}
}
}
},
// Test
"test": {},
// Deploy
"deploy": {}
}
```

## Server requirements

- You have to push your ssh public key on your server for the correct user.
- Create a virtual host configuration for your stage domain. (i.e. ASAP)
- Add your public key on your git hosting provider

## man
```
flow command branch

The most commonly command used flow commands are:
build Build package based on branch
deploy Deploy master branch to production
test Test a branch
stage Create or synchronise stage environment for branch
unstage Remove stage environment for branch
```

# For instance

Only __stage__ and __unstage__ work.

It's based on workspace and repository. This 2 sub modules do some stuffs with fabric. I'm really happy of this simplification of automation. System operations had never been so simple.

# Next step

I have to finish the stage part. I want to add a configuration loader for specific application as:

- CakePHP 2
- Symfony 2
- WordPress
- AngularJS
- Flask

Prepare build command. What kind of test ? How to prepare a build and how to deploy it on master ...