pipeline eventとは? CIを駆動するシグナル
pipeline eventは、pushやpull requestのようなシグナルで、CIシステムがそれを受け取り、pipelineを開始するかどうかを判断するために使います。
CIはイベント駆動です。リポジトリやシステムで何かが起き、eventが発行され、CIプラットフォームがそれに応じて何を (もしあれば) 実行するか判断します。eventを理解すると、pipelineがそのタイミングで始まる理由が明確になります。push event、pull request event、schedule eventはそれぞれ、pipelineが反応しフィルタリングできるコンテキストを運びます。
event vs trigger
eventは生のシグナルです (pushが起きた)。triggerは「そのeventが発生し、これらのフィルタが一致したら、このpipelineを実行する」というルールです。eventは起きることであり、triggerはそれを購読する方法です。
一般的なpipeline event
- Push: commitがbranchに到達した。
- Pull request: PRが開かれた、更新された、またはマージされた。
- Tag: 新しいtagが作成された。
- Schedule: タイマーが発火した。
- 手動または外部: dispatchまたはAPI呼び出し。
eventはコンテキストを運ぶ
eventには、pipelineが使えるデータが含まれます。どのbranchか、どのcommitか、誰がtriggerしたか、どのファイルが変わったかです。pipelineはこのコンテキストを読み、フィルタし (main でのみ実行) 、eventごとに異なる振る舞いをします。
簡単な例
pull_request eventは、ソースとターゲットのbranch、および変更されたファイルを運びます。workflowはそれを使い、PRが触れた部分に関連するテストだけを実行し、無関係なスイートをスキップできます。
eventとオーケストレーション
eventはpipelineを連鎖もさせます。あるworkflowの完了は、それ自体が別のものが反応できるeventです。このevent on eventのフローが、downstream pipelineやより広いbuildオーケストレーションの基盤です。
重要なポイント
- pipeline eventは、CIシステムが反応するシグナルです。
- eventは生の出来事であり、triggerはそれを購読するルールです。
- eventはコンテキスト (branch、commit、ファイル) を運び、pipelineがフィルタして使います。