【问题标题】:Parallelizing google cloudbuild steps without mangling the build logs在不破坏构建日志的情况下并行化 google cloudbuild 步骤
【发布时间】:2019-08-25 09:39:14
【问题描述】:

在此处遵循指导: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-platform continuous-integration google-kubernetes-engine google-cloud-build continuous-testing


【解决方案1】:

我遇到了同样的问题,但后来我发现通过Cloud Build 下的History 查看构建可以让您单独查看每个步骤,或者查看整个作业,就像您正在当前正在查看(单击Build Summary,侧边栏中的顶部条目)。 单击侧边栏中的步骤名称,每个步骤应由一个数字后跟一个冒号,然后是步骤名称组成。该数字似乎基于您的cloudbuild.yaml中的职位显示顺序

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

您可以阅读有关使用控制台查看构建历史记录的更多信息here

【讨论】:

    猜你喜欢
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多