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