首页 > 解决方案 > 在不破坏构建日志的情况下并行化 google cloudbuild 步骤

问题描述

遵循此处的指导:https ://cloud.google.com/cloud-build/docs/configuring-builds/configure-build-step-order

我们已将构建拆分为多层 docker 映像,其中层位于

  1. 安装操作系统和第三方部门
  2. 安装我们的源代码并构建(根据 docker ARG 在调试或发布中)
  3. 运行 ci / 代码覆盖率

我们已经用 docker id 标记了 cloudbuild.yaml 中的步骤,并正在waitfor尝试制作它,以便debugrelease版本可以并行运行。

但是,当我们这样做时,构建日志会混淆——发布和调试的构建日志混杂在一起,使其更难阅读。例如

Step #2 - "build-debug": �[0m�[91m  Downloaded colored v1.7.0
Step #5 - "build-release": �[0m�[91merror: couldn't read /tmp/mobilenode/src/attest/src/ias/../data/AttestationReportSigningCACert.pem: No such file or directory (os error 2)
Step #5 - "build-release":   --> /tmp/mobilenode/src/attest/src/ias/verify.rs:35:7
Step #5 - "build-release":    |
Step #5 - "build-release": 35 |     &[include_str!("../data/AttestationReportSigningCACert.pem")];
Step #5 - "build-release":    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #5 - "build-release": 
Step #2 - "build-debug": �[0m�[91m  Downloaded toml v0.4.10
[0m�[91m  Downloaded safemem v0.3.0
Step #2 - "build-debug": �[0m�[91m  Downloaded crunchy v0.1.6
Step #2 - "build-debug": �[0m�[91m  Downloaded grpcio-sys v0.4.4
Step #5 - "build-release": �[0m�[91merror: aborting due to previous error
Step #5 - "build-release": 
Step #5 - "build-release": �[0m�[91merror: Could not compile `attest`.
Step #5 - "build-release": warning: build failed, waiting for other jobs to finish...
Step #5 - "build-release": �[0m�[91merror: build failed
Step #5 - "build-release": �[0m�[91mmake: *** [src/enclave/target/release/libenclave.so] Error 101
Step #5 - "build-release": �[0mMakefile:90: recipe for target 'src/enclave/target/release/libenclave.so' failed
Step #2 - "build-debug": �[0m�[91m  Downloaded term v0.5.1
Step #2 - "build-debug": �[0m�[91m  Downloaded tiny_http v0.6.2
Step #2 - "build-debug": �[0m�[91m  Downloaded regex v0.1.80

有没有办法配置 cloudbuild,以便每个构建步骤都有一个单独的日志文件?对并行步骤使用不同的 cloudbuild.yaml 并跳过所有这些wait_for东西的最佳答案是什么?

标签: google-cloud-platformcontinuous-integrationgoogle-kubernetes-enginegoogle-cloud-buildcontinuous-testing

解决方案


我遇到了同样的问题,但后来我发现通过控制台中的History下方查看构建可以让您单独查看每个步骤,或者查看整个作业,就像您当前看到的一样(单击侧边栏中的顶部条目)。单击侧边栏中的步骤名称,每个步骤应包含一个数字,后跟一个冒号,然后是该步骤的名称。这个数字似乎是根据工作在您的Cloud BuildBuild Summarycloudbuild.yaml

您所看到的是构建并行化的结果,因为标记为能够同时运行的每个步骤都处于其执行的不同步骤。

示例构建您可以在此处 阅读有关使用控制台查看构建历史记录的更多信息。


推荐阅读