無料でビルドを開始
CircleCI.comアカデミーブログコミュニティサポート

ワークフローのスケジュール実行からパイプラインのスケジュール実行への移行

1+ year ago1 min read
クラウド
このページの内容

概要

ワークフローのスケジュール実行からパイプラインのスケジュール実行への移行により、ワークフローのスケジュール実行における以下の制限事項が解消されます。

  • ワークフローのスケジュール実行では実行ユーザーを制御できないため、制限付きコンテキストは使用できない

  • パイプラインの自動キャンセル操作を制御できない

  • ダイナミックコンフィグでは、複雑な対策を設けないとワークフローのスケジュール実行機能を使用できない

  • パイプラインをトリガーしないと、1つのブランチ上のワークフローのスケジュール実行の変更やキャンセルができない

  • スケジュールを変更しないと、スケジュール実行化されたワークフローのテスト実行を開始できない

  • ワークフローを Webhook で実行する場合は、 PR ブランチからのワークフローのスケジュール実行を制限できない

さらに、パイプラインのスケジュール実行では共通のスケジュールを統合することができます。 ワークフローのスケジュール実行では、たとえば毎晩午前 0 時に実行したいワークフローが 3 つある場合、それぞれ 3 つのスケジュールが必要でした。 しかし、パイプラインのスケジュール実行では、1 つのスケジュールで 3 つのすべてのワークフローを毎晩午前 0 時に実行するように設定できます。

1. スケジュールされているトリガーを見つける

ワークフローのスケジュール実行からパイプラインのスケジュール実行に移行するには、まずプロジェクトの .circleci/config.yml でスケジュール実行のトリガーを見つける必要があります。

例えば、以下のように記述されています。

daily-run-workflow:
  triggers:
    - schedule:
        # Every day, 0421Z.
        cron: "21 4 * * *"
        filters:
          branches:
            only:
              - main
  jobs:
    - test
    - build

2. 新しいスケジュールを作成する

新しいスケジュールを作成する前に、cron 式からトリガーを実行する頻度を確認します。 その後、API または Web アプリのプリジェクト設定を使ってスケジュールを作成します。 それぞれの方法を下記でご紹介します。

API を使用する場合

CCI トークンを準備します、または API トークンの管理 のページに記載されている手順に従って新しいトークンを作成します。 API を使用 して新しいスケジュールを作成します。 例えば以下のようになります。

curl --location --request POST "https://circleci.com/api/v2/project/<project-slug>/schedule" \
--header "Circle-Token: <PERSONAL_API_KEY>" \
--header "Content-Type: application/json" \
--data-raw '{
    "name": "my schedule name",
    "description": "some description",
    "attribution-actor": "system",
    "parameters": {
      "branch": "main"
      <additional pipeline parameters can be added here>
    },
    "timetable": {
        "per-hour": 3,
        "hours-of-day": [1,15],
        "days-of-week": ["MON", "WED"]
    }
}'

詳細については、 API v2 に関するドキュメントスケジュール のセクションを参照してください。

Web アプリのプロジェクト設定を使用する

  1. CircleCI Web アプリで、サイドバーにある Projects に移動し、プロジェクトの隣にある 省略記号 (…) をクリックします。 Project Settings ボタンは各プロジェクトのランディングページにもあります。

  2. Triggers に移動します。

  3. 新しいスケジュールを作成するには、Add Trigger をクリックします。

  4. フォームに入力して新しいスケジュールを定義し、Save Trigger をクリックします。

このフォームでは、 パイプラインパラメーター を追加するオプションも指定します。これは、設定ファイルで最初に宣言した型指定されたパイプライン変数です。

3. トリガーのセクションを削除する

設定ファイルで、triggers の部分を削除して通常のワークフローと同じようにします。

daily-run-workflow:
  jobs:
    - test
    - build

Suggest an edit to this page

Make a contribution
Learn how to contribute