Skip to content
Latchkey

ビルドトリガーとは?pipelineを開始するもの

ビルドトリガーとは、pipelineの実行を開始するようCIシステムに指示するイベントまたはルールです。

pipelineはひとりでには実行されません。何かがそれを始動させる必要があります。それがトリガーです。最も一般的なトリガーはコードのpushですが、pipelineはpull request、スケジュール、手動ボタン、API呼び出し、さらには別のpipelineの完了からも始まります。適切なトリガーを選ぶことで、作業がいつ起こるか、そしてどれだけのcomputeを消費するかを制御できます。

一般的なトリガーの種類

  • Push: commitがbranchに到着する。
  • Pull request: PRがオープン、更新、または再オープンされる。
  • スケジュール: cron式が設定された時刻に発火する。
  • 手動: 誰かが「run」をクリックするかworkflowをディスパッチする。
  • 外部: API呼び出し、webhook、またはアップストリームのpipelineがトリガーする。

トリガーのフィルタリング

トリガーは通常フィルタを受け付けるため、pipelineは実行すべきときだけ実行できます。main branchだけ、src/配下のファイルが変更されたときだけ、あるいはtagだけ、というように。良いフィルタは、無関係な変更がbuild minutesを消費するのを防ぎます。

簡単な例

GitHub Actionsでは、on: push: branches: [main]はmainへのpushに対してのみworkflowを実行し、on: schedule: - cron: "0 6 * * *"は毎日午前6時の実行を追加します。1つのon:ブロックの下に複数のトリガーを列挙できます。

トリガーとコスト

発火するすべてのトリガーはrunnerの時間を消費します。pathフィルタ、branchフィルタ、並行性の制限は、トリガーが冗長な実行を起動するのを防ぎます。連続したpush時に置き換えられた実行をキャンセルすることは、一般的な節約です。

手動と自動の比較

自動トリガー(push、PR)はフィードバックを速く保ちます。手動トリガーは、いつ進めるかを人間が決めるべきdeployや一度きりのjobに適しています。多くのチームはこれらを組み合わせ、テストは自動的に実行し、リリースは手動クリックで実行します。

重要なポイント

  • トリガーは、pipelineの実行を開始するイベントまたはルールです。
  • push、pull request、スケジュール、手動、外部が一般的な種類です。
  • branch、path、tagのフィルタは、不要な実行を止めて分を節約します。

関連ガイド