本页面介绍了如何查看有关 Cloud Build 的信息
使用 Google Cloud 控制台、gcloud
命令行工具和
Cloud Build API。
准备工作
如果希望使用本指南中的命令行示例,请安装 gcloud
命令行工具。
查看构建结果
如需查看构建日志,除了 Cloud Build IAM 权限之外,主账号还需要以下 IAM 角色之一:
如果您的构建日志位于默认 Cloud Storage 存储分区中,请授予项目 > Viewer 角色。
如果您的构建日志位于用户指定的 Cloud Storage 存储分区中,请授予 Storage Object Viewer 角色。
如需详细了解创建触发器后在 Cloud Build、GitHub 或 GitHub Enterprise 中查看构建日志的必要权限,请参阅 查看构建日志。
控制台
在 Google Cloud 控制台中,您可以通过构建记录菜单查看 有关构建状态(例如成功或失败)、源代码、 结果、创建时间、图片等。
如需查看构建记录菜单,请打开 Google Cloud 控制台中的构建记录页面:
这会显示构建记录页面,其中显示了最近的构建列表。
如需按区域过滤 build,请使用 ,选择您要作为过滤条件的区域。
您还可以使用页面顶部的过滤构建文本框或手动输入查询来过滤 build。
如需查看其他列,例如触发器说明和工件,请使用列选择器
。如需查看特定构建的详细信息,请转到构建记录,然后点击指定的构建。此时会显示构建详情页面,其中包含构建的构建摘要。构建摘要包含:
- 构建日志,您的构建的日志。
- 执行详细信息,构建的详细信息,其中包括环境变量和替换内容。
- 构建工件,构建的工件,例如容器映像、构建日志或二进制文件。
您可以查看构建日志或 选择左侧步骤表格中的步骤。
gcloud
gcloud builds list
命令可显示您的所有构建。
要查看您的构建,请运行以下命令:
gcloud builds list
您应该会看到类似于如下内容的输出:
ID CREATE_TIME DURATION SOURCE IMAGES STATUS
3a2055bc-ccbd-4101-9434-d376b88b8940 2018-02-16T18:33:26+00:00 23S gs://gcb-docs-project_cloudbuild/source/1518806004.25-db1e250a7b7f496eb8242bfee5ac308e.tgz us-east1-docker.pkg.dev/gcb-docs-project/quickstart-image (+1 more) SUCCESS
900704ca-7a0c-4569-ac08-884593c19aac 2018-02-16T18:32:32+00:00 gs://gcb-docs-project_cloudbuild/source/1518805951.23-03dd53d16f684c568fa2bb7ff7ebda06.tgz - FAILURE
021f9ede-ddaa-4cfb-8988-60142b015ebd 2018-02-14T15:48:44+00:00 10S gs://gcb-docs-project_cloudbuild/source/1518623322.56-9cd088ffc1e04f5aa6040728772d0c2a.tgz - SUCCESS
8126d538-3c43-4304-a14c-33aceec8cb97 2018-02-14T15:46:13+00:00 10S gs://gcb-docs-project_cloudbuild/source/1518623172.09-327c02585a4e44e782ac97dd80d5a5d5.tgz us-east1-docker.pkg.dev/gcb-docs-project/quickstart-image (+1 more) SUCCESS
要查看有关特定构建的详细信息,请运行以下命令:
gcloud builds describe [BUILD_ID]
其中,[BUILD_ID] 是您想要获取详细信息的构建的 ID。
您应该会看到类似于如下内容的输出:
createTime: '2018-02-22T14:49:54.066666971Z'
finishTime: '2018-02-22T14:50:05.463758Z'
id: bcdb9c48-d92c-4489-a3cb-08d0f0795a0b
images:
- us-east1-docker.pkg.dev/gcb-docs-project/quickstart-image
logUrl: https://console.cloud.google.com/cloud-build/builds/bcdb9c48-d92c-4489-a3cb-08d0f0795a0b?project=gcb-docs-project
logsBucket: gs://404889597380.cloudbuild-logs.googleusercontent.com
projectId: gcb-docs-project
results:
buildStepImages:
- sha256:a4363bc75a406c4f8c569b12acdd86ebcf18b6004b4f163e8e6293171462a79d
images:
- digest: sha256:1b2a237e74589167e4a54a8824f0d03d9f66d3c7d9cd172b36daa5ac42e94eb9
name: us-east1-docker.pkg.dev/gcb-docs-project/quickstart-image
pushTiming:
endTime: '2018-02-22T14:50:04.731919081Z'
startTime: '2018-02-22T14:50:00.874058710Z'
- digest: sha256:1b2a237e74589167e4a54a8824f0d03d9f66d3c7d9cd172b36daa5ac42e94eb9
name: us-east1-docker.pkg.dev/gcb-docs-project/quickstart-image:latest
pushTiming:
endTime: '2018-02-22T14:50:04.731919081Z'
startTime: '2018-02-22T14:50:00.874058710Z'
source:
storageSource:
bucket: gcb-docs-project_cloudbuild
generation: '1519310993665963'
object: source/1519310992.2-8465b08c79e14e89bee09adc8203c163.tgz
sourceProvenance:
fileHashes:
gs://gcb-docs-project_cloudbuild/source/1519310992.2-8465b08c79e14e89bee09adc8203c163.tgz#1519310993665963:
fileHash:
- value: -aRYrWp2mtfKhHSyWn6KNQ==
resolvedStorageSource:
bucket: gcb-docs-project_cloudbuild
generation: '1519310993665963'
object: source/1519310992.2-8465b08c79e14e89bee09adc8203c163.tgz
startTime: '2018-02-22T14:49:54.966308841Z'
status: SUCCESS
steps:
- args:
- build
- --no-cache
- -t
- us-east1-docker.pkg.dev/gcb-docs-project/quickstart-image
- .
name: gcr.io/cloud-builders/docker
status: SUCCESS
timing:
endTime: '2018-02-22T14:50:00.813257422Z'
startTime: '2018-02-22T14:50:00.102600442Z'
timeout: 600s
timing:
BUILD:
endTime: '2018-02-22T14:50:00.873604173Z'
startTime: '2018-02-22T14:50:00.102589403Z'
FETCHSOURCE:
endTime: '2018-02-22T14:50:00.087286880Z'
startTime: '2018-02-22T14:49:56.962717504Z'
PUSH:
endTime: '2018-02-22T14:50:04.731958202Z'
startTime: '2018-02-22T14:50:00.874057159Z'
步骤状态和构建状态
构建完成后,Cloud Build 会提供构建的整体 status
,以及每个构建步骤的 status
。
下表总结了构建或步骤成功、超时或失败时的状态:
事件 | 构建状态 | 步骤状态 |
---|---|---|
构建成功 | SUCCESS
| 所有步骤都标记为 SUCCESS 。 |
构建成功,但允许执行失败的步骤 | SUCCESS
|
|
构建失败 | FAILURE
|
|
构建被用户取消 | CANCELLED
|
|
构建超时 | TIMEOUT |
|
步骤超时 | FAILED |
|
如需查看每个步骤和构建的状态,请运行 gcloud builds describe
命令:
gcloud builds describe [BUILD_ID]
其中,[BUILD_ID] 是构建的 ID。
以下代码段显示了具有超时步骤的构建中每个步骤的状态:
status: FAILURE
steps:
- args:
- sleep
- '60'
id: long sleep
name: alpine
status: CANCELLED
timing:
endTime: '2018-02-26T14:09:18.531368493Z'
startTime: '2018-02-26T14:09:11.023235026Z'
waitFor:
- '-'
- args:
- sleep
- '3'
id: shorty
name: alpine
status: SUCCESS
timeout: 60s
timing:
endTime: '2018-02-26T14:09:15.497724138Z'
startTime: '2018-02-26T14:09:11.023676903Z'
waitFor:
- '-'
- args:
- sleep
- '60'
name: alpine
status: TIMEOUT
timeout: 3s
timing:
endTime: '2018-02-26T14:09:18.527488475Z'
startTime: '2018-02-26T14:09:15.497736775Z'
waitFor:
- shorty
- args:
- 'false'
name: alpine
status: QUEUED
waitFor:
- long sleep
timeout: 60s
使用查询过滤构建结果
如需查找符合特定条件的 build 信息,请提供查询字符串
(在构建记录页面的过滤构建版本字段中)
Google Cloud 控制台。例如,您可以查询已失败的构建(状态字段中的值为 FAILURE
)、在某一时间之后创建的构建、标记的构建以及其他符合此类条件的构建。
支持的查询字段
您可以根据以下字段的值查询构建:
status
build_id
trigger_id
source.storage_source.bucket
source.storage_source.object
source.repo_source.repo_name
source.repo_source.branch_name
source.repo_source.tag_name
source.repo_source.commit_sha
source_provenance.resolved_repo_source.commit_sha
results.images.name
results.images.digest
options.requested_verify_option
tags
images
create_time
start_time
finish_time
使用点表示法 (.
) 列出的字段是子字段。
构造查询字符串
查询字符串使用通用格式:
field="value"
使用点表示法指定子字段,比如 results.images.name
。查询支持 =
和 !=
比较运算符,以及用于具有数值(例如 create_time
)的字段的 >
、>=
、<
和 <=
。
您可以使用布尔表达式 AND
和 OR
创建复合查询。
常见示例查询
如需查询所有成功的构建,请运行以下命令:
status="SUCCESS"
如需查询尚未完成的所有构建,请运行以下命令:
status="QUEUED" OR status="WORKING"
如需查询具有给定结果映像名称的构建,请运行以下命令:
(status="SUCCESS" OR status="FAILURE") AND \
results.images.name="us-east1-docker.pkg.dev/my-project/my-image"
如需查询带有标记 "prod"
的所有构建,请运行以下命令:
tags="prod"
要查询标记为已验证的构建,请运行以下命令:
options.requested_verify_option="VERIFIED"
要查询来自 Cloud Storage 源代码(而不是 Cloud Source Repository)的构建,请运行以下命令:
source.storage_source.bucket!=""
要查询具有给定结果摘要的构建,请运行以下命令:
results.images.digest="sha256:6c7147fe4c813845ac2a9aa6f937bb272b68784f647c4f64c7325723c7245c88"
要查询在特定时间之后开始并在特定时间(UTC 时区)之前结束的构建,请运行以下命令:
create_time>"2016-10-12T18:43:49+00:00" AND finish_time<"2016-10-13T18:43:49+00:00"
使用标记过滤构建结果
可以在配置文件中使用标记,这样您就可以将构建分组并过滤构建。您可以在标记中指定字符串,例如 "prod"
或 "test"
。
标记具有以下限制:
- 每个标记的字符限制为 128 个字符
- 可以为每个构建定义最多 64 个标记
- 标记可以在字符串中任意位置包含字母、数字和下划线。
- 标记可以在任何位置(字符串的第一个位置除外)包含句点和连字符。
要在构建中添加标记,请执行以下操作:
在构建配置文件中,添加
tags
字段:steps: - name: 'gcr.io/cloud-builders/docker' args: [ 'build', '-t', 'us-east1-docker.pkg.dev/$PROJECT_ID/cb-demo-img', '.' ] images: - 'us-east1-docker.pkg.dev/$PROJECT_ID/cb-demo-img' tags: - 'test1' - 'test2'
如需查看集群中已标记的构建,请使用
gcloud builds list
中的--filter
选项。您可以通过指定单个标记或多个标记来过滤构建。如需按某个标记过滤构建,请将该标记指定为
tags
字段中的字符串。以下命令列出标记有'test1'
的所有构建:gcloud builds list --filter "tags='test1'"
如需按多个标记过滤构建,请使用“AND”,“OR”或“NOT”列出标记。以下命令列出标记有
'test1'
或'test2'
且标记有'test3'
的所有构建:gcloud builds list --filter "tags=('test1' OR 'test2') AND 'test3'"
运行以下命令后,您会看到类似于以下内容的输出:
ID CREATE_TIME DURATION SOURCE IMAGES STATUS d33a9895-... ... 1M45S gs://... us-east1-docker.pkg.dev/... SUCCESS
后续步骤
- 了解如何查看构建触发器的构建结果。
- 了解如何查看构建安全数据分析。
- 了解如何排查构建错误。