(こちらはScheduled Pipelines Are Hereの参考訳です)
パイプラインのスケジュール実行は、スケジュールされた作業の実行をサポートするために導入された新機能です。 この新機能は、最終的には廃止されるワークフローのスケジュール実行を置き換えるものです。
パイプラインのスケジュール実行とは
パイプラインのスケジュール実行とは、スケジュールを元にパイプラインをトリガーするしくみです。 スケジュールは次に挙げる方法で定義可能です
- 1つ以上の曜日指定
- スケジュールが何時(なんじ) に実行されるかを指定
- 1時間に何回実行されるかを指定(例: 1時間に1回、1時間に2回、30分おきなど)
スケジュールによる方法以外にも、ワークフローはAPI経由でもトリガーすることが可能です。いずれの場合も、パイプラインのワークフローが全て実行されます。また、スケジュールを指定する際に、パイプライン パラメーターを設定する事が可能です。
パイプラインのスケジュール実行方法
現時点では、スケジュールはAPI経由で作成可能です。 プロセスに関する詳しい情報は、CircleCIの プレビュー ドキュメント をご覧ください。
FAQ
作業をスケジュール実行する方法はこれまでにもありませんでしたか
その通りです。これまでもワークフローのスケジュール実行機能がありました。 しかし、ワークフローのスケジュール実行機能には、動的コンフィグや制限付きコンテキストとの間の非互換といった、機能制限が存在していました。 CircleCIでは将来的にワークフローのスケジュール実行機能を廃止する計画をしており、パイプラインのスケジュール機能が後継機能となります。
ワークフローのスケジュール実行機能を使用していますが、どうしたら良いですか
機能が廃止される前に、パイプラインのスケジュール実行を使用するように移行する必要があります。 つまり、スケジュールのパイプライン実行を作成し、ワークフローのスケジュール実行を削除する必要があります。 廃止スケジュールは、パイプラインのスケジュール実行がGAになった際にお知らせしますが、GAから約6か月を想定してください。 廃止以降は、ワークフローのスケジュール実行は実行されなくなります。
特定のワークフローをスケジュール実行する方法は
デフォルトでは、パイプラインのスケジュール実行は、WebhookやAPIがパイプラインをトリガーするのと同様の方法で、全てのワークフローを実行します。 ただし、パイプラインのスケジュール実行では、パイプライン パラメーターを指定できるので、コンフィグ中でパラメーターを定義しておくことで、特定のワークフローで “when” ステップや “unless” ステップを指定したフィルタリングを行うことが可能です。
パイプラインのスケジュール実行を使用するには APIを使用しなければなりませんか
現時点では、API経由でのみ使用可能です。 スケジュール管理を行うためのUIの開発を進めており、GAまでには利用可能になる予定です。 UI経由でも、API経由でも同じバックエンドを使用しているため、どちらか一方、あるいは両方を使用することができます。 一方、信頼性の観点から、コンフィグ内でのスケジュールの指定方法は今後削除されます。 しかし、API経由で利用いただくことで、IaC や構成管理ツール(Terraform, Ansible, Chef, Puppetなど) と連携しての管理ができるようになります。
スケジュールを実行するのは誰ですか
デフォルトでは、スケジュールは “scheduled user” によって実行されます。 しかし、他のユーザーを指定することで、スケジュールは当該ユーザーによって実行され、その際には、当該ユーザーが通常制限されるコンテクストと同様のアクセス権限に従います。 なお、当該ユーザーはスケジュールを作成/修正が可能である必要があります。
Cron形式の構文は今後も使用できますか
実際にスケジュールが指定されているケースの大多数においては、シンプルなパターンが一般的に使用されていました。 よりシンプルな指定方法を提供することで、パイプラインのスケジュール実行は、より安定した形で利用ができ、ほとんどのユースケースについてもカバー可能であると考えています。