# -*- 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 stage(): env.status = 'stage' env.user = USER_DEVELOP env.password = PASS_DEVELOP env.hosts = HOSTS_DEVELOP env.PROJECT_DIR = f'projects/{PROJECT_NAME_DEVELOP}-stage' env.BRANCH = BRANCH_PROD @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') elif env.status == 'stage': run('docker-compose -f docker-compose.stage.yml build') run('docker-compose -f docker-compose.stage.yml down') run('docker-compose -f docker-compose.stage.yml 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') elif env.status == 'stage': run('docker-compose -f docker-compose.stage.yml 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()