Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

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

Predicates:

tag IS present
tag IS blank

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

設定のポイント

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

if: tag IS present

https://docs.travis-ci.com/user/conditions-v1

  • ビルド、ステージ、ジョブを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
masakurapa
自分の作業メモ的なことを書く感じ。 PHP/Goで開発をしています。 家ではAWS/Svelte3/Goを触りながら色々作って遊んでます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした