web-dev-qa-db-ja.com

TravisCI:特定のブランチでafter_successを実行する

特定のブランチに対してのみ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

助言がありますか?

21
Sung Cho

TRAVIS_BRANCH環境変数 を使用して簡単なスクリプトを記述し、after_successでスクリプトを実行することで解決しました。

。travis.yml

after_success:
- ./deploy.sh

deploy.sh

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

ビルドのデプロイフェーズで スクリプトプロバイダー を使用してこれを行うこともできます。このアプローチは少しすっきりしていますが、after_successとは異なり、コマンドは1つしか許可されません。

deploy:
  provider: script
  script: # some deployment script
  on:
    branch: prod
14
ProjectFrank