build 类型:Cloud Build v1 build

本页介绍了 Cloud Build 的构建类型

build 定义

外部参数

下表显示了 Cloud Build build 中可以使用的外部参数类型。外部参数是您指定的值,不存在于 build 配置中。这包括 cloudbuild.yaml 文件中不存在的触发器参数。

字段 类型 详细信息
buildConfigSource 对象 读取 build 配置的位置。

BuildTrigger 中,这对应于触发了 build 的源代码库(SCM 事件触发的 build),对于所有其他触发器类型,则对应于 gitFileSource

系统会设置 buildConfigSourcebuildConfig(对于内嵌构建配置)。
buildConfigSource.ref 字符串 buildConfigSource.repository 中用于读取配置的 Git 引用,可以是完全限定的 git 引用(以 refs/ 开头)或提交 SHA(小写十六进制值)。仅当在触发器中指定了提交 SHA 时,系统才会使用提交 SHA。
buildConfigSource.repository 字符串 包含构建配置文件的 Git 代码库的 HTTPS URI,采用 https:// 协议。此值将带有 git+ 前缀,以便与 SPDX 格式兼容。如需详细了解格式要求,请参阅 ResourceURI
buildConfigSource.path 字符串 提交中的构建配置文件的路径。示例:cloudbuild.yaml

与 pathAutodetect 互斥。其中必须有一个字段设置为非默认值。
buildConfigSource.pathAutoDetect 布尔值 如果为 true,则表示系统自动检测到了 path,这与 BuildTrigger 中的 autodetect 选项相对应。False 被视为未设置;如果未启用自动检测,Cloud Build 会改用 path

path 相互排斥。必须将其中一个字段设置为非默认值。
sourceToBuild 对象 已签出和构建的源代码。通常,这与 buildConfigSource 相同;只有在 BuildTrigger 设置了 gitFileSource 时才会有所不同。

如果 repositoryrefbuildConfigSource 相同且 dir 为空,则此字段不存在。

在 BuildTrigger 中,此字段对应于 sourceToBuild 或触发 build 的提交,具体取决于触发器类型。
sourceToBuild.ref 字符串 已签出的 sourceToBuild.repository 中的 Git 引用,可以是完全限定的 git 引用(以 refs/ 开头)或提交 SHA(小写十六进制)。只有在触发器中指定了提交 SHA 时,系统才会使用提交 SHA。
sourceToBuild.repository 字符串 已检出的 Git 代码库的 HTTPS URI,采用 https:// 协议。此字段的前缀为 git+
sourceToBuild.dir 字符串 提交中的目录,用于运行 build,不带尾随斜杠。可以为空,未设置。
buildConfig 字符串 提供内嵌 build 配置(例如在手动提交的 build 中)时,系统会记录以下信息。

- 步骤
- 构建选项(例如环境变量、卷、工作器池详细信息、machineType、日志详细信息)
- 替换项

如果从代码库读取了 build 配置,则会将其记录在 buildConfigSource 部分,并省略内嵌 build 配置。

此信息会以 base64 编码的序列化 JSON 字符串的形式存储。
substitutions map<string,string></string,string> 一个(字符串 -> 字符串)映射,其中包含要对 build 资源执行的替换。

此字段仅包含未记录在 build 配置中的“运行时”或“独立”替换项,即从触发器或 gcloud CLI 标志传入的替换项。

此记录不包含系统提供的默认替换项,因为这些替换项被视为 internalParameters

无论替换项是否在 build 配置中被引用或使用,都会显示在此字段中。

内部参数

下表显示了 Cloud Build 为 build 设置的内部参数(除非您覆盖这些参数)。如需了解详情,请参阅默认替换项

字段 详细信息
triggerUri 调用此 build 的触发器的资源 URI,在本例中为完整资源名称。

如果未触发构建,则省略此字段。
systemSubstitutions Cloud Build build 中会自动提供一组默认替换值,例如 PROJECT_IDBUILD_ID

如果您覆盖了 Cloud Build 的某个默认替换项,您的替换项将不会显示在此处。您的值将改为列在 externalParameters.substitutions 中。

已解析的依赖项

如果 build 具有源代码库或 build 配置库,BuildDefinitionresolvedDependencies 部分会对该库进行说明。

ResolvedDependencies 符合 ResourceDescriptor 规范


依赖项类型

详细信息

build 配置代码库

对于触发的 build,是从中提取 build 配置(即 cloudbuild.yaml)的代码库。


如果 build 配置不是从代码库读取的,而是内嵌提供的,则此字段可能为空,在这种情况下,系统会将其省略。

源代码库

要构建的源代码的来源代码库。它可以与 buildConfigSource 相同,也可以不同。如果与 buildConfigSource 相同,则省略 sourceToBuild,例如在 SCM 触发的 build 中。

如果通过 –no-source 运行 build,sourceToBuild 可能为空,并且会被省略。

例如,以下 resolvedDependencies 信息包含 buildConfigRepo 和 sourceRepo(这两个值相同),以及一个 build 步骤映像。

"resolvedDependencies": [
{
    "uri": "git+https://github.com/octocat/hello-world.git",
    "digest": {"sha1": "7fd1a60b01f91b314f59955a4e4d4e80d8edf11d"}
}, {
    "uri": "gcr.io/cloud-builders/git",
    "digest": {
        "sha256": "28ff94e63e4058afc3f15b4c11c08cf3b54fa91faa646a4bba7158df"}
    }
]

RunDetails

字段 详细信息
构建器 包含一个 id 子字段,用于标识执行操作并填充此来源的 build 平台。其中还包含 SLSA 级别。预期的 id 值为 https://cloudbuild.googleapis.com/GoogleHostedWorker
元数据 有关此特定 build 执行的其他元数据。 invocationId 会显示 build 的网址,例如 https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/builds/BUILD_ID
startedOnfinishedOn 字段包含构建开始和完成的时间戳。
副产品 尚未使用。旨在包含不属于 build 输出但可能对问题排查或突发事件响应有用的其他工件。
systemSubstitutions Cloud Build build 中会自动提供一组默认替换值,例如 PROJECT_IDBUILD_ID

如果您覆盖了 Cloud Build 的某个默认替换项,您的替换项将不会显示在此处。您的值将改为列在 externalParameters.substitutions 中。