触发器文件架构

本页面介绍了 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

可选。与触发 build 的 Git 引用匹配的 RE2 格式正则表达式

默认值为空。如果 includedGitRefs 过滤条件字段为空,则表示没有限制。

如果 Git 参考未包含在 ignoredGitRefs 过滤条件字段中,Secure Source Manager 会检查 includedGitRefs 过滤条件字段。如果 Git 参考位于 includedGitRefs 过滤字段中,则会触发 build。如果 includedGitRefs 过滤条件字段不为空,并且 Git 参考未包含在 includedGitRefs 过滤条件字段中,则不会触发 build。

ignoredGitRefs

可选。与不应触发 build 的 Git 引用匹配的 RE2 格式正则表达式。

默认值为空。如果 ignoredGitRefs 过滤条件字段为空,则表示没有限制。

Secure Source Manager 会先检查 ignoredGitRefs 过滤条件字段。如果该字段不为空,且 Git 参考与 ignoredGitRefs 过滤条件字段匹配,则不会触发 build。

serviceAccount

必需。用于构建的 Cloud Build 服务账号

格式:projects/PROJECT_ID/serviceAccounts/ACCOUNT

替换以下内容:

  • PROJECT_ID 替换为您在其中创建服务账号的 Google Cloud 项目 ID。
  • ACCOUNT:服务账号的电子邮件地址或唯一 ID。

includedFiles

可选。一种 RE2 格式的正则表达式,用于匹配在更改时应触发构建的文件。

如果更改的文件不在 ignoredFiles 过滤字段中,但与 includedFiles 过滤字段匹配,则会触发 build。

默认值为空。如果过滤条件字段为空,则表示没有限制。

ignoredFiles

可选。一种 RE2 格式的正则表达式,用于匹配更改时不应触发 build 的文件。

如果 ignoredFiles 过滤条件字段不为空,则仅包含与 ignoredFiles 过滤条件字段匹配的文件的提交不会触发 build。默认值为空。空过滤条件表示没有限制。

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:构建执行期间使用的 build 配置文件的路径。

如需了解如何在 Cloud Build 配置文件中添加 Secure Source Manager 替换变量,请参阅替换变量值

后续步骤