Cloud Build のトリガー設定で「トリガーのタイプ」「含まれるファイルフィルタ」「無視されるファイルフィルタ」を組み合わせ他時に、どの条件が優先されるのかわからないケースがあり試してみた結果です。
※Cloud Build のトリガーは記事公開時点でベータ扱いのため、今後仕様が変更される可能性があります。
結論
- 「トリガーのタイプ」が「タグ」の場合、「含まれるファイルフィルタ」と「無視されるファイルフィルタ」の設定は無視される
- 「トリガーのタイプ」が「ブランチ」の場合
- 「含まれるファイルフィルタ」だけを設定すると、それにマッチしないファイルをコミットしてもビルドはトリガーされない
- 「含まれるファイルフィルタ」と「無視されるファイルフィルタ」いずれも設定した場合、両方にマッチするファイルをコミットしてもビルドはトリガーされない(無視されるファイルフィルタが優先される)
試した内容
以下の組み合わせを考えて、どうなるのか曖昧なパターンについて実際にコミットして試してみた結果が上述の結論です。また、トリガーのタイプにタグを設定した場合にいずれの指定も無視されるようだったのでこのパターンでもいくつか試してみましたが、やはり無視されるようでした(タグは特定のコミットのみ示すので差分を気にしないのは理にかなっている気がします)。
含まれるファイルフィルタ指定 | 無視されるファイルフィルタ指定 | 含まれる~にマッチするファイル | 無視される~にマッチするファイル | マッチしないファイル | トリガーされる? |
---|---|---|---|---|---|
v | トリガーされるはず | ||||
v | v | トリガーされるはず | |||
v | v | ? | |||
v | v | トリガーされないはず | |||
v | v | トリガーされるはず | |||
v | v | v | トリガーされるはず | ||
v | v | v | トリガーされるはず | ||
v | v | v | トリガーされないはず | ||
v | v | v | ? | ||
v | v | include/exclude 両方にマッチ | include/exclude 両方にマッチチ | ? | |
v | v | v | v | トリガーされるはず | |
v | v | v | v | トリガーされるはず | |
v | v | v | v | ? | |
v | v | v | v | v | トリガーされるはず |