LoginSignup
0
0

More than 3 years have passed since last update.

TravisCI タグをプッシュした時だけ動くビルドステージの設定

Posted at

tagを作ったときだけデプロイを走らせたい!!って時の設定をメモっときます。

特に↓にひっそりいる tag IS present が分からなくて詰まった。。
https://docs.travis-ci.com/user/conditions-v1

Predicates:

tag IS present
tag IS blank

設定例は下の方に書いときます。

設定のポイント

ビルドステージを実行するかの設定

if: tag IS present

  • ビルド、ステージ、ジョブをif条件で実行しないようにできる
  • tag には現在のタグ名が入る
    • presentを指定することでタグがある場合だけ動く
    • blankにすればタグが無いときに動く
  • 他にも色々条件があるみたいなので必要ならドキュメントを漁る

デプロイのステップを実行するかの設定

on:
  tags: true

https://docs.travis-ci.com/user/deployment
ドキュメントを読んでみた

  • tags: trueの場合
    • $TRAVIS_TAGが設定されている場合だけ動く
    • deploy前に$TRAVIS_TAGを明示的に指定すれば動くっぽい(試してない)
    • tags: true$TRAVIS_TAGが設定されている場合はbranchの条件は指定されていても無視される
  • tags: falseの場合
    • $TRAVIS_TAGが空の場合 のみ 動く
    • branchの条件は指定されていても無視される
  • tags未設定 or true/false以外
    • $TRAVIS_TAGの値は無視される
    • branchの条件は指定されていればその条件を使う

scriptのスキップ設定

script: skip

何かビルド前に実行したいスクリプトがある場合はskipは不要だが
特に何もやることがない場合はskipを設定しないと以下のようなエラーがでた

$ make test
make: *** No rule to make target 'test'.  Stop.
The command "make test" exited with 2.

設定例

stages:
  - test
  - deploy

jobs:
  include:
    - stage: test
      name: Test
      script:
        - echo 'test stage'

    - stage: deploy
      name: Deploy
      ### ビルドステージを実行するかの設定がココ
      if: tag IS present
      script: skip
      deploy:
        provider: s3
        ### デプロイのステップを実行するかの設定がココ
        on:
          tags: true
      before_deploy:
        - echo 'before deploy'

↑ではjobsに書いたけどstagesに書くこともできる

stages:
  - test
  - name: deploy
    if: tag IS present
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0