You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

67 lines
1.6 KiB

# -*- coding: utf-8 -*-
# flake8: noqa
from fabric.api import *
from conf.deploy.common import BRANCH_DEVELOP, BRANCH_PROD, PROJECT_NAME, PROJECT_NAME_DEVELOP
from conf.deploy.prod import HOSTS, USER, PASS
from conf.deploy.develop import HOSTS as HOSTS_DEVELOP, USER as USER_DEVELOP, PASS as PASS_DEVELOP
@task
def develop():
env.status = 'develop'
env.user = USER_DEVELOP
env.password = PASS_DEVELOP
env.hosts = HOSTS_DEVELOP
env.PROJECT_DIR = f'projects/{PROJECT_NAME_DEVELOP}'
env.BRANCH = BRANCH_DEVELOP
@task
def prod():
env.status = 'prod'
env.user = USER
env.password = PASS
env.hosts = HOSTS
env.PROJECT_DIR = f'opt/app/{PROJECT_NAME}'
env.BRANCH = BRANCH_PROD
@task
def pull():
with cd(env.PROJECT_DIR):
run(f'git pull origin {env.BRANCH}')
@task
def docker_rebuild():
with cd(env.PROJECT_DIR):
if env.status == 'prod':
run('docker-compose build')
run('docker-compose down')
run('docker-compose up -d')
else:
run('docker-compose -f docker-compose.develop.yml build')
run('docker-compose -f docker-compose.develop.yml down')
run('docker-compose -f docker-compose.develop.yml up -d')
@task
def docker_restart():
with cd(env.PROJECT_DIR):
if env.status == 'prod':
run('docker-compose restart web')
else:
run('docker-compose -f docker-compose.develop.yml restart web')
@task
def upgrade():
pull()
docker_rebuild()
@task
def update():
pull()
docker_restart()