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未設定 ortrue/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