トリガーについて

Updated 2 years ago by Admin

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

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

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

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

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

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

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

ブランチによるトリガー

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

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

構文の例:

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

除外構文の例:

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

イベントによるトリガー

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

タグイベントでブランチトリガーを使用できないことに注意してください。タグは、タグが作成されたソースブランチに関連付けられていません。

12 trigger:
13 event:
14 - cron
15 - custom
16 - push
17 - pull_request
18 - tag
19 - promote
20 - rollback

構文の例:

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

除外構文の例:

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

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

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

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

構文の例:

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

除外構文の例:

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


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

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

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

構文の例:

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

除外構文の例:

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

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

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

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

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

12 trigger:
13 status:
14 - failure

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

12 trigger:
13 status:
14 - failure

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

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

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

12 trigger:
13 status:
14 - success

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

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

12 trigger:
13 target:
14 - production

構文の例:

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

除外構文の例:

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

Cronによるトリガー

cronトリガーは、パイプラインをトリガーしたcron名に基づいてステップの実行を制限します。これはcronイベントにのみ適用されます。

12 trigger:
13 event:
14 - cron
15 cron:
16 - nightly

構文の例:

12 trigger:
13 event:
14 - cron
15 cron:
16 include:
17 - weekly
18 - nightly

除外構文の例:

12 trigger:
13 event:
14 - cron
15 cron:
16 exclude:
17 - nightly


How did we do?