为已打开的拉取请求跳过travis.yml部署?

时间:2017-02-16 06:07:18

标签: github travis-ci travis-ci-cli

我为拉取请求启用了Travis repo。当拉取请求打开时,travis.yml会触发测试和deploy脚本。

我想打开pull请求来运行所有测试,但是除非合并,否则不要运行部署脚本。

以下是我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

1 个答案:

答案 0 :(得分:4)

您可以使用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 varibles:
https://docs.travis-ci.com/user/environment-variables/#Default-Environment-Variables