本页介绍了 Cloud Build 的构建类型。
build 定义
外部参数
下表显示了 Cloud Build build 中可以使用的外部参数类型。外部参数是您指定的值,不存在于 build 配置中。这包括 cloudbuild.yaml
文件中不存在的触发器参数。
字段 | 类型 | 详细信息 |
---|---|---|
buildConfigSource | 对象 | 读取 build 配置的位置。 在 BuildTrigger 中,这对应于触发了 build 的源代码库(SCM 事件触发的 build),对于所有其他触发器类型,则对应于 gitFileSource 。系统会设置 buildConfigSource 或 buildConfig (对于内嵌构建配置)。 |
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 时才会有所不同。如果 repository 和 ref 与 buildConfigSource 相同且 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_ID 、BUILD_ID 。如果您覆盖了 Cloud Build 的某个默认替换项,您的替换项将不会显示在此处。您的值将改为列在 externalParameters.substitutions 中。 |
已解析的依赖项
如果 build 具有源代码库或 build 配置库,BuildDefinition
的 resolvedDependencies
部分会对该库进行说明。
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 。
startedOn 和 finishedOn 字段包含构建开始和完成的时间戳。
|
副产品 | 尚未使用。旨在包含不属于 build 输出但可能对问题排查或突发事件响应有用的其他工件。 |
systemSubstitutions | Cloud Build build 中会自动提供一组默认替换值,例如 PROJECT_ID 、BUILD_ID 。如果您覆盖了 Cloud Build 的某个默认替换项,您的替换项将不会显示在此处。您的值将改为列在 externalParameters.substitutions 中。 |