ワークフローのスケジュール実行からパイプラインのスケジュール実行への移行
予定されていたワークフローのスケジュール実行機能の廃止は延期されました。 廃止に関する通知以降、CircleCI では皆様からのフィードバックや機能リクエストを注視していました。それにより、パイプラインのスケジュール実行の既存機能の強化、および移行をスムーズに行うための整備が必要であることが明らかになりました。 廃止の新しいタイムラインについては、本ドキュメントおよび CircleCI Discuss で随時お知らせします。 |
概要
ワークフローのスケジュール実行からパイプラインのスケジュール実行への移行により、ワークフローのスケジュール実行における以下の制限事項が解消されます。
-
ワークフローのスケジュール実行では実行ユーザーを制御できないため、制限付きコンテキストは使用できない
-
パイプラインの自動キャンセル操作を制御できない
-
ダイナミックコンフィグでは、複雑な対策を設けないとワークフローのスケジュール実行機能を使用できない
-
パイプラインをトリガーしないと、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 アプリのプロジェクト設定を使用する
-
CircleCI Web アプリで、サイドバーにある Projects に移動し、プロジェクトの隣にある 省略記号 (…) をクリックします。 Project Settings ボタンは各プロジェクトのランディングページにもあります。
-
Triggers に移動します。
-
新しいスケジュールを作成するには、Add Trigger をクリックします。
-
フォームに入力して新しいスケジュールを定義し、Save Trigger をクリックします。
このフォームでは、 パイプラインパラメーター を追加するオプションも指定します。これは、設定ファイルで最初に宣言した型指定されたパイプライン変数です。
3. トリガーのセクションを削除する
設定ファイルで、triggers
の部分を削除して通常のワークフローと同じようにします。
daily-run-workflow:
jobs:
- test
- build
ドキュメントの改善にご協力ください
このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、 GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。
- このページの編集をご提案ください (最初に「コントリビューションガイド」をご覧ください)。
- ドキュメントの問題点を報告する、またはフィードバックやコメントを送信するには、GitHub で issue を作成してください。
- CircleCI は、ユーザーの皆様の弊社プラットフォームにおけるエクスペリエンスを向上させる方法を常に模索しています。 フィードバックをお寄せいただける場合は、リサーチコミュニティにご参加ください。
サポートが必要ですか
CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。
または、 サポートサイト から、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。
CircleCI Documentation by CircleCI is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.