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

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

More than 3 years have passed since last update.

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

sssinsi
私の投稿する内容は、所属する組織を代表するものではありません。
showroom
SHOWROOMは、アイドルやアーティストとインターネット上でコミュニケーションが楽しめるライブ動画ストリーミングプラットフォームです。
https://www.showroom-live.com/
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