Typical Use Cases

1. Prepare project for development:

cid prepare master --vcsRepo=git:user@host:git/repo.git
# create VCS working copy with specified VCS ref
# auto-detects tools and executes:
#  npm install, composer install, bundle install, etc.

2. Prepare project for release:

cid tag master
# updates auto-detected files like package.json
# creates tags
# "patch" version increment is the default behavior

3. Release builds on CI server:

cid ci_build v1.0.0 Releases --vcsRepo=git:user@host:git/repo.git \
    --rmsRepo=svn:user@host/rms

4. Nightly builds on CI server:

cid ci_build master Nightly --vcsRepo=git:user@host:git/repo.git \
    --rmsRepo=scp:user@host

5. Production-like execution environment in development:

cid devserve
# PHP-FPM, Ruby rack, Python WSGI, nginx... Doesn't matter - it knows how!

6. Staging deployment from VCS:

cid deploy vcsref master --vcsRepo=git:user@host:git/repo.git \
    --deployDir=/www/staging \
    --limit-memory=1G
# See "Resource limits auto-detection" section for more info.
# Public services listen on 0.0.0.0, unless overridden.
# UNIX sockets are preferred for internal communications.

7. Production deployment from RMS:

cid deploy rms Releases --rmsRepo=svn:user@host/rms \
    --deployDir=/www/prod \
    --limit-memory=8G \
    --limit-cpus=4
# Auto-detection & distribution of resources as stated above.
# Forced resource limits are preserved per deployment across runs, if not overridden

8. Alter resource limits before or after deployment:

cid deploy setup
    --deployDir=/www/prod \
    --limit-memory=16G

9. Execution of deployed project:

cid service master --deployDir=/www/prod

10. Use any supported tool without caring for setup & dependencies:

cte dockercompose ...
# ensures:
# * setup of system Docker
# * setup of virtualenv
# * setup of pip
# * setup of docker-compoer via pip into virtualenv
# actually, executes