Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
28
Help us understand the problem. What is going on with this article?
@terrierscript

Circle-CI 2.0のcron triggerを使って、定期実行をする

More than 3 years have passed since last update.

Circle-CIでいつのまにcron実行する機能が追加されていたので試した。

TravisCIには少し前から入っていた機能。

Circle-CIの場合、TravisCIほとさくっと使える感じではなかったのでメモ

どんな時に使えるか?

例えばこんなユースケースが思いつく

  • E2Eなど重くて全branchで実行するには辛いもの
  • 外部のAPIに引きづられて落ちてないかのテスト
  • masterを定期的にstagingと同期するdeploy処理

今回は一番上の「branchにCIは回したい、でも重いテストだけは一日一回にしたい」みたいな場合で考えてみる

config

とりあえず最終的にどうなるかを記載。

circleci/config.yml
version: 2
jobs:
  test: # 普通のテスト
    docker:
      - image: node:8
    steps:
      - checkout
      - run: npm run test
  heavy_test: # 重いテスト
    docker:
      - image: node:8
    steps:
      - checkout
      - run: npm run heavy_test

workflows:
  version: 2
  normal_test_workflow:
    jobs:
      - test
  nightly_workflow:
    triggers:
      - schedule:
          cron: "0 1 * * *" # UTCで記述。この場合は朝10時
          filters:
            branches:
              only:
                - master
    jobs:
      - heavy_test

ポイントは下記の通り

  • Circle-CIのconfigは2.0向けに書く必要がある
    • workflowを利用するので、workflow形式で。
  • triggerの処理は、jobではなく、workflowに対して設定する必要がある。
    • 今回の場合だと、通常のbranch向けのjobとworkflowと、一日一回実行するjobとworkflowを記述する必要がある
    • 定期実行が通常のテストと同じで良いなら、jobを一つ、workflowだけ2つ書く感じになる。
    • それぞれでの共通化については、以前別記事を書いたので、必要があれば参考にしていただきたい
  • Cronは普通にcrontab形式。ただし UTC なので注意。
  • 記述を間違うと、失敗通知すら来ず無視されるのつらい
28
Help us understand the problem. What is going on with this article?
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
terrierscript
移植作業中です。 https://zenn.dev/terrierscript

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
28
Help us understand the problem. What is going on with this article?