-
Notifications
You must be signed in to change notification settings - Fork 2.5k
feat(ci): Enable parallel builds for Ubuntu 20.04 & 24.04 base images #13964
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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 |
Refactored trial_build.py and report_generator.py to provide clearer and more accurate build logs. Key changes: - Differentiated between 'projects' and 'builds' for precise counting. - Consolidated and clarified the reporting of skipped builds. - Updated the results JSON schema with descriptive keys. - Updated the report generator to consume the new schema and display both build counts per version and a final summary of projects analyzed.
/gcbrun trial_build.py json-c zlib libarchive bad_example --fuzzing-engines libfuzzer --sanitizers address --force-build |
1 similar comment
/gcbrun trial_build.py json-c zlib libarchive bad_example --fuzzing-engines libfuzzer --sanitizers address --force-build |
The 'lcab' package was removed from Ubuntu 24.04 repositories, causing build failures for projects like libarchive. This change resolves the issue by installing 'lcab' from a .deb package into the Ubuntu 24.04 base-builder image. To support this while adhering to the image strategy, version-specific install_deps.sh scripts were created for Ubuntu 20.04 and 24.04. Additionally, the CI workflow for checking synchronization was improved: - Renamed to 'ubuntu_version_sync.yml' for clarity. - Updated to monitor 'install_deps.sh' to prevent future drift.
a02a45b
to
2a7284a
Compare
/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 |
…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 |
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.py
workflow. 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.py
Refactored:BASE_IMAGE_VERSIONS
list 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.py
script against a set of projects.base-image:latest
,base-image:ubuntu-20-04
, etc.).