为打开的拉取请求跳过 travis.yml 部署?
Skip a travis.yml deploy for opened pull requests?
我为拉取请求启用了 Travis 存储库。打开拉取请求时,travis.yml 会同时触发测试和 deploy
脚本。
我想打开 运行 所有测试的拉取请求,但不 运行 部署脚本,除非合并。
下面是我的示例 travis.yml
:
sudo: true
language: node_js
before_deploy:
- wget https://s3.amazonaws.com/go-cli/releases/v6.12.4/cf-cli_amd64.deb -qO temp.deb && sudo dpkg -i temp.deb
- rm temp.deb
- cf login
- cf install-plugin autopilot -r CF-Community
- npm run build
deploy:
- edge: true
provider: script
script: cf zero-downtime-push app-name -f ./manifest.yml
on:
branch: master
您可以使用travis特殊环境变量TRAVIS_PULL_REQUEST
来检测是否为PR触发构建。
因此您的脚本可以如下所示:
...
deploy:
- edge: true
provider: script
script: if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then cf zero-downtime-push app-name -f ./manifest.yml; else echo "PR skip deploy"; fi
on:
branch: master
更多 travis 变量供您参考:
https://docs.travis-ci.com/user/environment-variables/#Default-Environment-Variables
我为拉取请求启用了 Travis 存储库。打开拉取请求时,travis.yml 会同时触发测试和 deploy
脚本。
我想打开 运行 所有测试的拉取请求,但不 运行 部署脚本,除非合并。
下面是我的示例 travis.yml
:
sudo: true
language: node_js
before_deploy:
- wget https://s3.amazonaws.com/go-cli/releases/v6.12.4/cf-cli_amd64.deb -qO temp.deb && sudo dpkg -i temp.deb
- rm temp.deb
- cf login
- cf install-plugin autopilot -r CF-Community
- npm run build
deploy:
- edge: true
provider: script
script: cf zero-downtime-push app-name -f ./manifest.yml
on:
branch: master
您可以使用travis特殊环境变量TRAVIS_PULL_REQUEST
来检测是否为PR触发构建。
因此您的脚本可以如下所示:
...
deploy:
- edge: true
provider: script
script: if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then cf zero-downtime-push app-name -f ./manifest.yml; else echo "PR skip deploy"; fi
on:
branch: master
更多 travis 变量供您参考:
https://docs.travis-ci.com/user/environment-variables/#Default-Environment-Variables