TravisCI:运行 after_success 在特定分支上

TravisCI: Run after_success on a specific branch

我想知道如何为特定分支运行编写after_success脚本。

我正在使用自定义脚本在构建通过后部署应用程序。我只想在 prod 分支上 运行 这个。

到目前为止,我尝试了以下方法:

#1

after_success:
  - # some deployment script
  on: prod

#2

branches:
  only:
    - prod
    after_success:
      - # some deployment script
#3

after_success:
  branches:
    only:
      - prod
  - # some deployment script

有什么建议吗?

我通过使用 TRAVIS_BRANCH environment variable 编写一个简单的脚本解决了这个问题,并在 after_success

中执行了脚本

.travis.yml

after_success:
- ./deploy.sh

deploy.sh

#!/bin/bash
if [ "$TRAVIS_BRANCH" == "prod" ]; then
  // do the deploy
fi

您也可以在构建的部署阶段使用 script provider 来完成此操作。与 after_success.

不同,这种方法更简洁但只允许一个命令
deploy:
  provider: script
  script: # some deployment script
  on:
    branch: prod