Travis手动确认下一阶段

时间:2018-06-13 07:49:25

标签: travis-ci

我有一个阶段testproduction。我想手动确认部署到生产。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

您可以使用Conditional Deployments。这允许您指定是否推送到 var age=prompt("What is your age="); function check(age){ if (Number(age)===18){ console.log("Cong its your first ride"); } else if(Number(age)>18){ console.log("Powering On"); } else{ console.log("Not qualify for ride"); } } check(age);production。 将其与例如一个test - 脚本,区分分支和/或标记的提交。

例如:

check-live-deployment.sh

#!/bin/bash set -e contains() { if [[ $TRAVIS_TAG = *"-live"* ]] then #"-live" is in $TRAVIS_TAG echo "true" else #"-live" is not in $TRAVIS_TAG echo "false" fi } echo "============== CHECKING IF DEPLOYMENT CONDITION IS MET ==============" export LIVE=$(contains) 用于.travis.yml / dev / staging - 部署到Cloud Foundry:

live

如果分支是master&&&&&没有标记,sudo: false language: node_js node_js: - '8.9.4' branches: only: - master - "/v*/" script: - printenv before_install: - chmod +x -R ci install: - source ci/check_live_deployment.sh - ./ci/check_live_deployment.sh deploy: - provider: script skip_cleanup: true script: env CF_SPACE=$CF_SPACE_DEV CF_MANIFEST=manifest-dev.yml ci/deploy_to_cf.sh on: tags: false - provider: script skip_cleanup: true script: env CF_SPACE=$CF_SPACE_STAGING CF_MANIFEST=manifest-staging.yml ci/deploy_to_cf.sh on: tags: true - provider: script skip_cleanup: true script: env CF_SPACE=$CF_SPACE_LIVE CF_MANIFEST=manifest-live.yml ci/deploy_to_cf.sh on: tags: true condition: $LIVE = true 如果是标记的提交,dev + staging,如果它是master(发布)上的标记提交,并且满足部署条件。

授予: 也许不是最漂亮的解决方案,但绝对有效。这不是Travis等你手动确认实时部署(这会嘲笑整个自动部署原则imo),但这是一种保证,你必须以特定方式手动触发管道的方法。