build 类型:Cloud Build v1 build

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

build 定义

外部参数

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

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

BuildTrigger 中,它对应于触发构建的源代码库(SCM 事件触发的构建)或 gitFileSource(对于所有其他触发器类型)。

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

与 pathAutodetect 互斥。必须将其中一个字段设置为非默认值。
buildConfigSource.pathAutoDetect boolean 如果为 true,则自动检测 path,对应于 BuildTrigger 中的自动检测选项。False 被视为等同于未设置;如果未启用自动检测功能,Cloud Build 将使用 path

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

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

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

- 步骤
- 构建选项(例如,环境变量、卷、工作器池详情、machineType、日志详情)
- 替代项

如果构建配置是从代码库中读取的,则会记录在 buildConfigSource 部分中,并且省略内嵌构建配置。

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

这仅包含未记录在构建配置中(即从触发器或 gcloud CLI 标志传入)的“运行时”或“独立”替换项。

此记录不包含系统提供的默认替代变量,因为它们被视为 internalParameters

无论构建配置中是否引用或使用替代变量,替代项都会显示在此字段中。

内部参数

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

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

如果未触发构建,则省略此字段。
systemSubstitutions Cloud Build 构建中自动提供了一部分默认替代值,例如 PROJECT_IDBUILD_ID

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

已解析的依赖项

如果 build 具有源代码库或 build 配置代码库,则可以在 BuildDefinitionresolvedDependencies 部分中描述该代码库。

ResolvedDependencies 符合 ResourceDescriptor 规范


依赖项类型

详细信息

构建配置代码库

从中提取构建配置(即 cloudbuild.yaml)的代码库(如果是触发的构建)。


如果构建配置不是从代码库读取的,并且以内嵌方式提供,则此字段可能为空,在这种情况下,系统会省略此字段。

源代码库

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

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

例如,以下 resolvedDependencies 信息包含 buildConfigRepo 和 sourceRepo(相同)以及构建步骤映像。

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

RunDetails

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

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