Пример #1
0
def deploy_commcare(environment, args, unknown_args):
    deploy_revs, diffs = get_deploy_revs_and_diffs(environment, args)

    if not confirm_deploy(environment, deploy_revs, diffs, args):
        print(color_notice("Aborted by user"))
        return 1

    fab_func_args = get_deploy_commcare_fab_func_args(args)
    fab_settings = [args.fab_settings] if args.fab_settings else []
    for name, rev in deploy_revs.items():
        var = 'code_branch' if name == 'commcare' else '{}_code_branch'.format(
            name)
        fab_settings.append('{}={}'.format(var, rev))

    announce_deploy_start(environment, "CommCare HQ", args.commcare_rev)
    start = datetime.utcnow()
    rc = commcare_cloud(environment.name,
                        'fab',
                        'deploy_commcare{}'.format(fab_func_args),
                        '--set',
                        ','.join(fab_settings),
                        branch=args.branch,
                        *unknown_args)
    if rc != 0:
        return rc

    diff = _get_diff(environment, deploy_revs)
    if not args.skip_record:
        record_successful_deploy(environment, diff, start)

    return 0
Пример #2
0
def deploy_formplayer(environment, args):
    print(color_notice("\nPreparing to deploy Formplayer to: "), end="")
    print(f"{environment.name}\n")

    tag_commits = environment.fab_settings_config.tag_deploy_commits
    repo = github_repo('dimagi/formplayer',
                       require_write_permissions=tag_commits)

    diff = get_deploy_diff(environment, repo)
    diff.print_deployer_diff()

    if not ask('Continue with deploy?', quiet=args.quiet):
        return 1

    start = datetime.utcnow()
    announce_deploy_start(environment, FORMPLAYER)

    rc = run_ansible_playbook_command(environment, args)
    if rc != 0:
        announce_deploy_failed(environment, FORMPLAYER)
        return rc

    rc = commcare_cloud(
        args.env_name,
        'run-shell-command',
        'formplayer',
        ('supervisorctl reread; '
         'supervisorctl update {project}-{deploy_env}-formsplayer-spring; '
         'supervisorctl restart {project}-{deploy_env}-formsplayer-spring'
         ).format(
             project='commcare-hq',
             deploy_env=environment.meta_config.deploy_env,
         ),
        '-b',
    )
    if rc != 0:
        announce_deploy_failed(environment, FORMPLAYER)
        return rc

    record_deploy_success(environment, repo, diff, start)
    return 0