feat(ci): Enable parallel builds for Ubuntu 20.04 & 24.04 base images - #13964
Conversation
|
rebasing this on top should solve the AFL issue |
2955804 to
3207b66
Compare
33593e5 to
ddf13fb
Compare
|
I think the new images are still using the old llvm: Not sure if this intentional, but this means the new images will be using the old rust version and projects would have difficutly switching from the "legacy" image (with newer versions) to the new images (with older toolchain versions). |
f04a5d9 to
0b00121
Compare
|
/gcbrun trial_build.py all --fuzzing-engines libfuzzer --sanitizers address |
2 similar comments
|
/gcbrun trial_build.py all --fuzzing-engines libfuzzer --sanitizers address |
|
/gcbrun trial_build.py all --fuzzing-engines libfuzzer --sanitizers address |
97f2133 to
8e7f8eb
Compare
|
/gcbrun trial_build.py all --fuzzing-engines libfuzzer --sanitizers address |
3 similar comments
|
/gcbrun trial_build.py all --fuzzing-engines libfuzzer --sanitizers address |
|
/gcbrun trial_build.py all --fuzzing-engines libfuzzer --sanitizers address |
|
/gcbrun trial_build.py all --fuzzing-engines libfuzzer --sanitizers address |
…gs for better traceability
…n required by libarchive
|
/gcbrun trial_build.py json-c zlib libarchive bad_example --fuzzing-engines libfuzzer --sanitizers address --force-build |
…lls and downgrades fix(trial_build): Implement exponential backoff for build status checks with retry logic
|
/gcbrun trial_build.py all --fuzzing-engines libfuzzer --sanitizers address --force-build |
|
/gcbrun trial_build.py json-c zlib libarchive bad_example --fuzzing-engines libfuzzer --sanitizers address --force-build |
|
/gcbrun trial_build.py all --fuzzing-engines libfuzzer --sanitizers address --force-build |
|
/gcbrun trial_build.py all --force-build |
|
/gcbrun trial_build.py json-c zlib libarchive bad_example --fuzzing-engines libfuzzer --sanitizers address --force-build |
|
/gcbrun trial_build.py all --force-build |
|
/gcbrun trial_build.py json-c zlib libarchive bad_example --fuzzing-engines libfuzzer --sanitizers address --force-build |
|
/gcbrun trial_build.py json-c zlib libarchive bad_example --fuzzing-engines libfuzzer --sanitizers address --force-build |
in #13964 `--pull` was added to `docker build`. However, this causes issues when developing the images locally, as we always end up pulling upstream images causing issues when building changes that carry through several base images. Removing `--pull` from this.
| fi | ||
|
|
||
| echo "Building ${tag} from ${dockerfile}..." | ||
| docker build --pull -t "${tag}" -f "${dockerfile}" "${image_dir}" |
There was a problem hiding this comment.
There was a problem hiding this comment.
No specific reason, feel free to change this.
in #13964 `--pull` was added to `docker build`. However, this causes issues when developing the images locally, as we always end up pulling upstream images causing issues when building changes that carry through several base images. Removing `--pull` from this. Was running into this when debugging #14315
This fixes a few regressions in the build infra. Put indexer builds in /out fixing uploading regression (#14086) Fixes regressions in trial builds (#13964): * Projects no longer build in mismatched images (e.g. Ubuntu 20 projects in Ubuntu 24 images) that cause build failures leading tested PRs to appear broken. * Undoes accidental deletion of index build support in trial builds. This restores needed functionality. * Removes legacy builds which are redundant with Ubuntu 20. * Corrects language to reflect bug fix in #14440. * Removes emojis and other nonascii characters causing rendering issues.
Part of: b/441792502
Description
This PR modifies the existing base image testing pipeline (
trial_build.py) to support the Ubuntu 24.04 migration. It enables the parallel build and testing of base images forlatest,ubuntu-20-04, andubuntu-24-04.Instead of introducing a new, separate CI pipeline, this change integrates the multi-version logic directly into the established
trial_build.pyworkflow. This approach ensures that both local development builds and remote CI builds are consistent and leverage the existing, robust testing infrastructure.Changes Made
build_and_push_test_images.pyRefactored:BASE_IMAGE_VERSIONSlist now serves as the single source of truth for all target Ubuntu versions.gcb_build_and_push_images) was updated to generate a single Google Cloud Build trigger with parallel steps for each image and version combination.build_and_push_images) was also updated to build all versions in parallel usingmultiprocessing, ensuring local and remote build parity.Dynamic Dockerfile Selection: The script now intelligently selects the correct Dockerfile (e.g.,
base-image/ubuntu-24-04.Dockerfile) based on the target version, skipping any that do not exist.Consistent Versioned Tagging: Helper functions were updated to apply the correct tags to the images (e.g.,
gcr.io/oss-fuzz-base/base-image:ubuntu-24-04-testing).How to Verify
trial_build.pyscript against a set of projects.base-image:latest,base-image:ubuntu-20-04, etc.).