Следуя указаниям здесь: https://cloud.google.com/cloud-build/docs/configuring-builds/configure-build-step-order
Мы разделили нашу сборку на многослойное изображение докера, где слои
- Установите ОС и сторонние приложения
- Установите наши исходные коды и выполните сборку (в режиме отладки или выпуска в зависимости от docker ARG)
- Выполните покрытие кода / кода
Мы пометили шаги в cloudbuild.yaml идентификаторами докера ииспользуя waitfor
, чтобы попытаться сделать так, чтобы версии debug
и release
могли запускать параллельно .
Однако, когда мы делаем это, журнал сборки смешивается- журналы сборки для выпуска и отладки перемешаны, что делает его более трудным для чтения.например,
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
вещи?