Fix cloud build failures showing up as success
1. Fix return codes for top level cloudbuild
2. Fix Dockerfile location for cos_gpu_installer_v1
3. Fix workdir for toolbox dockerfile
BUG=b/183723138
Change-Id: I74956d8d150ad5ae614bb6183e638a813f0613d3
Reviewed-on: https://cos-review.googlesource.com/c/cos/tools/+/17371
Cloud-Build: GCB Service account <228075978874@cloudbuild.gserviceaccount.com>
Reviewed-by: Robert Kolchmeyer <rkolchmeyer@google.com>
Tested-by: Arnav Kansal <rnv@google.com>
diff --git a/cloudbuild.yaml b/cloudbuild.yaml
index ffbf59b..83ecb86 100644
--- a/cloudbuild.yaml
+++ b/cloudbuild.yaml
@@ -4,6 +4,10 @@
args:
- '-c'
- |
+ # File that contains failures.
+ failure_file=failure.log
+ touch ${failure_file}
+
for d in src/cmd/*/; do
config="${d}cloudbuild.yaml"
if [[ ! -f "${config}" ]]; then
@@ -12,8 +16,24 @@
echo "Building $d ... "
(
- gcloud builds submit --config=${config} --substitutions=_OUTPUT_PROJECT=${_OUTPUT_PROJECT},TAG_NAME=${COMMIT_SHA}
+ logfile="${d::-1}.log"
+ gcloud builds submit --config=${config} --substitutions=_OUTPUT_PROJECT=${_OUTPUT_PROJECT},TAG_NAME=${COMMIT_SHA} > ${logfile} 2>&1
+ if [[ $? -ne 0 ]]; then
+ echo "$d failed" | tee -a ${failure_file}
+ cat ${logfile}
+ fi
) &
done
wait
+
+ # Check if there is any failure.
+ if [[ -s ${failure_file} ]]; then
+ echo
+ echo "Some builds failed:"
+ cat ${failure_file}
+ echo "Exiting."
+ exit 1
+ fi
+ echo "All builds succeeded."
+
timeout: 3600s
diff --git a/src/cmd/cos_gpu_installer_v1/cloudbuild.yaml b/src/cmd/cos_gpu_installer_v1/cloudbuild.yaml
index 69b353f..3a3b5c3 100644
--- a/src/cmd/cos_gpu_installer_v1/cloudbuild.yaml
+++ b/src/cmd/cos_gpu_installer_v1/cloudbuild.yaml
@@ -23,7 +23,7 @@
- 'gcr.io/${_OUTPUT_PROJECT}/cos-gpu-installer-v1:latest'
- '-t'
- 'gcr.io/${_OUTPUT_PROJECT}/cos-gpu-installer-v1:${TAG_NAME}'
- - 'cos-gpu-installer-docker/'
+ - 'src/cmd/cos_gpu_installer_v1/cos-gpu-installer-docker/'
images:
- 'gcr.io/${_OUTPUT_PROJECT}/cos-gpu-installer-v1:latest'
- 'gcr.io/${_OUTPUT_PROJECT}/cos-gpu-installer-v1:${TAG_NAME}'
diff --git a/src/cmd/toolbox/cloudbuild.yaml b/src/cmd/toolbox/cloudbuild.yaml
index 171095d..b08eb6d 100644
--- a/src/cmd/toolbox/cloudbuild.yaml
+++ b/src/cmd/toolbox/cloudbuild.yaml
@@ -21,5 +21,5 @@
# image after building it, because a subsequent `docker push` won't find the
# image locally.
- name: 'gcr.io/cloud-builders/docker'
- args: ['buildx', 'build', '--platform', 'linux/amd64,linux/arm64', '-t', 'gcr.io/${_OUTPUT_PROJECT}/toolbox:latest', '-t', 'gcr.io/${_OUTPUT_PROJECT}/toolbox:${TAG_NAME}', '--push', '.']
+ args: ['buildx', 'build', '--platform', 'linux/amd64,linux/arm64', '-f', 'src/cmd/toolbox/Dockerfile', '-t', 'gcr.io/${_OUTPUT_PROJECT}/toolbox:latest', '-t', 'gcr.io/${_OUTPUT_PROJECT}/toolbox:${TAG_NAME}', '--push', 'src/cmd/toolbox']
timeout: 1800s