Add fabfile.py
This commit is contained in:
parent
a74658ac49
commit
26fe6117c4
1 changed files with 61 additions and 0 deletions
61
fabfile.py
vendored
Normal file
61
fabfile.py
vendored
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import json
|
||||||
|
from fabric.api import run, env, cd
|
||||||
|
|
||||||
|
config = {
|
||||||
|
'TARGET_PORT': 6589,
|
||||||
|
'TARGET_USER': 'www-data',
|
||||||
|
}
|
||||||
|
|
||||||
|
try:
|
||||||
|
TARGET_CONF = json.loads(os.getenv('TARGET_CONF'))
|
||||||
|
except (SyntaxError, ValueError) as e:
|
||||||
|
print 'Could not parse configuration: %s' % e
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
BUILD_JOB_NAME = os.getenv('CI_BUILD_NAME')
|
||||||
|
|
||||||
|
if BUILD_JOB_NAME not in TARGET_CONF:
|
||||||
|
print 'Could not find job configuration for %s' % BUILD_JOB_NAME
|
||||||
|
sys.exit(1)
|
||||||
|
else:
|
||||||
|
config.update(TARGET_CONF[BUILD_JOB_NAME])
|
||||||
|
|
||||||
|
BRANCH = os.getenv('CI_BUILD_REF_NAME')
|
||||||
|
|
||||||
|
if not BRANCH:
|
||||||
|
print 'Could not get branch name from configuration: Please specify CI_BUILD_REF_NAME env var'
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
for option in ['TARGET_HOST', 'TARGET_PATH']:
|
||||||
|
if not config.get(option):
|
||||||
|
print 'Could not get %s from configuration!' % option
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
env.hosts = [config.get('TARGET_HOST')]
|
||||||
|
env.port = config.get('TARGET_PORT')
|
||||||
|
env.user = config.get('TARGET_USER')
|
||||||
|
|
||||||
|
|
||||||
|
def pre():
|
||||||
|
if config.get('PRE_CMDS'):
|
||||||
|
[run(cmd) for cmd in config.get('PRE_CMDS')]
|
||||||
|
|
||||||
|
|
||||||
|
def git_pull():
|
||||||
|
run('git fetch --all')
|
||||||
|
run('git checkout --force %s' % BRANCH)
|
||||||
|
run('git reset --hard origin/%s' % BRANCH)
|
||||||
|
|
||||||
|
|
||||||
|
def post():
|
||||||
|
if config.get('POST_CMDS'):
|
||||||
|
[run(cmd) for cmd in config.get('POST_CMDS')]
|
||||||
|
|
||||||
|
|
||||||
|
def deploy():
|
||||||
|
with cd(config.get('TARGET_PATH')):
|
||||||
|
pre()
|
||||||
|
git_pull()
|
||||||
|
post()
|
Loading…
Add table
Add a link
Reference in a new issue