トリガー

Updated 2 years ago by Admin

コードをリポジトリにプッシュしたり、プルリクエストを開いたり、タグを作成したりすると、ソース管理システムが自動的にウェブフックをDroneに送信し、Droneがパイプラインの実行をトリガーします。トリガーセクションを使用して、パイプラインの実行を制限します。

例では、ブランチごとにパイプラインの実行を制限しています。

1  kind: pipeline
2 type: macstadium
3 name: default
4
5 steps:
6 - name: build
7 commands:
8 - go build
9 - go test
10
11 trigger:
12 branch:
13 - master

トリガーでワイルドカードマッチングを使用できます。トリガーは正規表現ではなく、globパターンマッチングを使用することに注意してください。

11 trigger:
12 ref:
13 - refs/heads/master
14 - refs/heads/**
15 - refs/pull/*/head

複数のトリガーを組み合わせることもできます。複数のトリガーを組み合わせる場合は、すべてのトリガーがtrueと評価される必要があることに注意してください。

11 trigger:
12 branch:
13 - master
14 event:
15 - push

ブランチによるトリガー

ブランチトリガーは、gitブランチに基づいてステップの実行を制限します。ターゲットブランチはプルリクエストに対して評価されることに注意してください。ブランチ名はタグイベントには使用できません。

タグでブランチトリガーを使用することはできないことに注意してください。タグは、タグが作成されたソースブランチに関連付けられていません。
11 trigger:
12 branch:
13 - master
14 - feature/*

構文の例:

11 trigger:
12 branch:
13 include:
14 - master
15 - feature/*

除外構文の例:

11 trigger:
12 branch:
13 exclude:
14 - master
15 - feature/*

イベントによるトリガー

イベントトリガーは、Droneイベントタイプに基づいてステップの実行を制限します。これは、プッシュ、プルリクエスト、タグなどに基づいてステップを制限する場合に役立ちます。

タグイベントでブランチトリガーを使用できないことに注意してください。タグは、タグが作成されたソースブランチに関連付けられていません。
11 trigger:
12 event:
13 - push
14 - pull_request
15 - tag
16 - promote
17 - rollback

構文の例:

11 trigger:
12 event:
13 include:
14 - push
15 - pull_request

除外構文の例:

11 trigger:
12 event:
13 exclude:
14 - pull_request

リファレンスによるトリガー

リファレンストリガーは、git参照名に基づいてステップの実行を制限します。これは、ブランチ名またはタグ名をglobマッチさせたい場合に役立ちます。

11 trigger:
12 ref:
13 - refs/heads/feature-*
14 - refs/tags/*

構文の例:

11 trigger:
12 ref:
13 include:
14 - refs/heads/feature-*
15 - refs/pull/**
16 - refs/tags/**

除外構文の例:

11 trigger:
12 ref:
13 exclude:
14 - refs/heads/feature-*
15 - refs/pull/**
16 - refs/tags/**

リポジトリによるトリガー

リポジトリトリガーは、リポジトリ名に基づいてステップの実行を制限します。これは、リポジトリとそのフォークに対してDroneが有効になっていて、それに応じて実行を制限したい場合に役立ちます。

11 trigger:
12 repo:
13 - octocat/hello-world

構文の例:

11 trigger:
12 repo:
13 include:
14 - octocat/hello-world
15 - spacebhost/hello-world

除外構文の例:

11 trigger:
12 repo:
13 exclude:
14 - octocat/hello-world
15 - spacebhost/hello-world

ワイルドカードマッチングを使用した例:

11 trigger:
12 repo:
13 include:
14 - octocat/*


インスタンスによるトリガー

インスタンストリガーは、Droneインスタンスのホスト名に基づいてステップの実行を制限します。これは、単一のリポジトリ用に複数のDroneインスタンスを構成し、同じyamlファイルを共有していて、インスタンスごとにステップを制限したい場合に役立ちます。

11 trigger:
12 instance:
13 - drone.instance1.com
14 - drone.instance2.com

構文の例:

11 trigger:
12 instance:
13 include:
14 - drone.instance1.com
15 - drone.instance2.com

除外構文の例:

11 trigger:
12 instance:
13 exclude:
14 - drone.instance1.com
15 - drone.instance2.com

ワイルドカードマッチングを使用した例:

11 trigger:
12 instance:
13 include:
14 - *.company.com


ステータスによるトリガー

ステータストリガーは、パイプラインステータスに基づいてステップの実行を制限します。たとえば、失敗した場合にのみSlack通知を構成したい場合があります。

11 trigger:
12 status:
13 - failure

失敗時にステップを実行します。

11 trigger:
12 status:
13 - failure

成功または失敗のステップを実行します。

11 trigger:
12 status:
13 - success
14 - failure

次の構成は冗長です。デフォルトの動作では、パイプラインステップは、パイプラインが通過状態にある場合にのみ実行されます。

11 trigger:
12 status:
13 - success


ターゲットによるトリガー

ターゲットトリガーは、ターゲット展開環境に基づいてステップの実行を制限します。これは、プロモーションイベントとロールバックイベントにのみ適用されます。

11 trigger:
12 target:
13 - production

構文の例:

11 trigger:
12 target:
13 include:
14 - staging
15 - production

除外構文の例:

11 trigger:
12 target:
13 exclude:
14 - production


How did we do?