LoginSignup
2
1

More than 5 years have passed since last update.

タグ付けしたときにCircleCIでハマった話

Last updated at Posted at 2017-12-26

GitHubにタグ付けしてもCircleCIが動作しなかったので、そのときの解決方法を記載します。
結論としては、requiresのジョブにもfiltersを設定しようということになります。

環境

  • CircleCI version 2.0
  • GitHub

問題

以下のようにcircleci/config.ymlを書いてタグ付けをしたのですが、なぜかCircleCIでワークフローが動作しませんでした。

config.yml
workflows:
  version: 2
  samples:
    jobs:
      - sample1:
      - sample2:
          requires:
            - sample1
          filters:
            branches:
              ignore: /.*/
            tags:
              only: /^v[0-9]+(\.[0-9]+){2}$/

原因と解決方法

jobsの基本動作として、filtersbranches指定しなくても全てのブランチでジョブは動作しますが、tags指定しないと動作しないようになっていました。

公式に、依存するジョブにはタグの指定をしてね、的なことが書いてありました。
https://circleci.com/docs/2.0/workflows/#git-tag-job-execution

つまりここで動作しなかった原因は、sample2の必須ジョブとしてsample1が設定されていましたが、sample1はタグ設定時には動作しないためCircleCIが動作していませんでした。

以上を考慮して、タグ設定時でもsample1を動作させるようにした結果、無事タグ付けしたときにCircleCIが連動してジョブを実行してくれました :raised_hands:

config.yml
workflows:
  version: 2
  samples:
    jobs:
      - sample1:
          tags:
              only: /^v[0-9]+(\.[0-9]+){2}$/
      - sample2:
          requires:
            - sample1
          filters:
            branches:
              ignore: /.*/
            tags:
              only: /^v[0-9]+(\.[0-9]+){2}$/

参考

タグ動作でハマった人が質問しており、見事原因が同じでした。
https://discuss.circleci.com/t/builds-for-tags-not-triggering/17681/5

2
1
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
2
1