觸發條件檔案結構定義

本頁面說明 Secure Source Manager 觸發條件檔案的結構定義。如需建立觸發條件檔案的操作說明,請參閱建立觸發條件檔案

觸發條件檔案包含 Secure Source Manager 的操作說明,可根據 Secure Source Manager 中的推送或提取要求事件,觸發 Cloud Build 設定檔中定義的步驟。

您可以設定分支保護規則,要求特定觸發條件必須通過狀態檢查。如要進一步瞭解分支保護機制,請參閱「分支保護機制總覽」。

觸發條件檔案的結構

觸發條件設定檔必須在存放區的預設分支中建立。您可以使用 YAML 語法撰寫觸發條件檔案。

觸發條件檔案的結構如下:

triggers:
- name: string
  project: string
  configFilePath: string
  eventType: string
  includedGitRefs: string
  ignoredGitRefs: string
  includedFiles: string
  ignoredFiles: string
  serviceAccount: string
  disabled: bool
  substitutions: map[string]string
- name: string
...

觸發條件檔案的每個具名區段,都會定義要用於 Secure Source Manager 中指定事件類型的 Cloud Build 設定。

觸發條件

觸發條件會指定要使用哪種 Secure Source Manager 事件類型,觸發特定 Cloud Build 設定檔中的步驟完成。您也可以指定要監控哪些分支機構的特定事件。

在觸發條件檔案中使用 name 欄位來識別觸發條件。以下提供的設定種類範例可以在觸發條件檔案中設定:

triggers:
- name: presubmit-test
  project: my-project
  configFilePath: test.yaml
  eventType: pull_request
  includedGitRefs: ^main$
  ignoredGitRefs: .*log
  serviceAccount: projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com
  includedFiles: .*
  ignoredFiles: my-file.txt
  disabled: false
- name: postsubmit-run
  project: my-project
  configFilePath: run.yaml
  eventType: push
  includedGitRefs: ^main$
  ignoredGitRefs: dev-branch
  serviceAccount: projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com
  disabled: false
  substitutions:
    _NODE_VERSION_1: v6.9.1
    REPO_NAME: dev

name

這是必要旗標,使用觸發條件的 name 欄位來識別觸發條件。觸發條件名稱只能包含英數字元和破折號,且開頭或結尾不得為破折號。觸發條件名稱長度不得超過 64 個字元。

project

(選用步驟) 使用 project 欄位識別已啟用 Cloud Build 的 Google Cloud 專案。

預設為 Secure Source Manager 專案。

configFilePath

(選用步驟) Cloud Build 設定檔的路徑。

預設為 .cloudbuild/cloudbuild.yaml

eventType

(選用步驟) 要觸發的事件類型。選項包括將推送至所選分支的 push,或將提取要求推送至所選分支的 pull_request

預設為 push

includedGitRefs

(選用步驟) 符合 Git 參照RE2 格式規則運算式,會觸發建構作業。

預設值為空白。如果 includedGitRefs 篩選器欄位為空白,表示沒有任何限制。

如果 ignoredGitRefs 篩選器欄位未包含 Git 參照,Secure Source Manager 會檢查 includedGitRefs 篩選器欄位。如果 Git 參照位於 includedGitRefs 篩選器欄位中,系統就會觸發建構作業。如果 includedGitRefs 篩選器欄位不為空白,且 Git 參照未納入 includedGitRefs 篩選器欄位,系統就不會觸發建構作業。

ignoredGitRefs

(選用步驟) RE2 格式的規則運算式,可比對不應觸發建構作業的 Git 參照。

預設值為空白。如果 ignoredGitRefs 篩選器欄位為空白,表示沒有任何限制。

Secure Source Manager 會先檢查 ignoredGitRefs 篩選器欄位。如果這個欄位不為空,且 Git 參照符合 ignoredGitRefs 篩選器欄位,系統就不會觸發建構作業。

serviceAccount

這是必要旗標,用於建構作業的 Cloud Build 服務帳戶

格式:projects/PROJECT_ID/serviceAccounts/ACCOUNT

更改下列內容:

  • PROJECT_ID:使用您建立服務帳戶的 Google Cloud 專案 ID。
  • ACCOUNT:使用服務帳戶的電子郵件地址或專屬 ID。

includedFiles

(選用步驟) RE2 格式的規則運算式,用於比對應在變更時觸發建構的檔案。

如果變更的檔案不在 ignoredFiles 篩選器欄位中,且變更的檔案符合 includedFiles 篩選器欄位,系統就會觸發建構作業。

預設值為空白。如果篩選器欄位空白,表示沒有任何限制。

ignoredFiles

(選用步驟) RE2 格式的規則運算式,用於比對不應在變更時觸發建構作業的檔案。

如果 ignoredFiles 篩選器欄位不為空白,且提交內容只包含與 ignoredFiles 篩選器欄位相符的檔案,就不會觸發建構作業。預設值為空白。如果篩選條件為空白,表示沒有任何限制。

disabled

(選用步驟) 布林值,用於設定是否停用觸發條件。值為 truefalse

預設為 false

substitutions

在觸發程序檔案中使用替代變數,可在 Cloud Build 設定檔的建構時間替換特定變數。

替代項目必須以底線開頭,且只能包含大寫英文字母、底線和數字,或是 Secure Source Manager 替代變數。

Secure Source Manager 提供下列預設替代變數:

  • TRIGGER_NAME:與觸發條件相關聯的名稱。
  • COMMIT_SHA:與觸發條件相關聯的修訂版本 ID。
  • REVISION_ID:與觸發條件相關聯的修訂版本 ID。
  • SHORT_SHACOMMIT_SHA 的前七個字元。
  • REPO_NAME:存放區名稱。例如:my-repo
  • REPO_FULL_NAME:存放區的資源路徑,例如:projects/my-project/locations/us-central/repositories/test-repo
  • REF_NAME:與觸發條件相關聯的分支或標記名稱。
  • TRIGGER_BUILD_CONFIG_PATH:建構執行期間使用的建構設定檔路徑。

如要瞭解如何在 Cloud Build 設定檔中加入 Secure Source Manager 替代變數,請參閱替代變數值

後續步驟