Skip to content
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

build: Introduce "min" version of CI builder #30694

Merged
merged 1 commit into from
Jan 13, 2025
Merged

Conversation

ParkMyCar
Copy link
Member

@ParkMyCar ParkMyCar commented Dec 2, 2024

Adds a "min" flavor of the CI builder image which is ~1/10th the size of the full image. Because our Bazel build is fully hermetic, it already pulls in the necessary toolchains and thus the image we use can be quite small. The "min" image can be fetched in ~30 seconds, whereas the full image takes ~2 minutes and 30 seconds. This should save about 4 minutes end-to-end in CI because both the initial mkpipeline step and the Build steps will each save 2 minutes.

Similarly most CI jobs just run other Docker images built by the initial step, so they also can use this "min" image, which should save another 2 minutes.

Motivation

Reduce CI time by ~4 minutes

Checklist

  • This PR has adequate test coverage / QA involvement has been duly considered. (trigger-ci for additional test/nightly runs)
  • This PR has an associated up-to-date design doc, is a design doc (template), or is sufficiently small to not require a design.
  • If this PR evolves an existing $T ⇔ Proto$T mapping (possibly in a backwards-incompatible way), then it is tagged with a T-proto label.
  • If this PR will require changes to cloud orchestration or tests, there is a companion cloud PR to account for those changes that is tagged with the release-blocker label (example).
  • If this PR includes major user-facing behavior changes, I have pinged the relevant PM to schedule a changelog post.

@ParkMyCar ParkMyCar force-pushed the build/ci-builder-min branch 12 times, most recently from 0b2382d to 8f6e5b2 Compare December 3, 2024 21:21
@ParkMyCar ParkMyCar force-pushed the build/ci-builder-min branch from 0eac60c to 380ca97 Compare January 12, 2025 19:56
@ParkMyCar ParkMyCar changed the title [dnr] build: Introduce "min" version of CI builder build: Introduce "min" version of CI builder Jan 12, 2025
@ParkMyCar ParkMyCar force-pushed the build/ci-builder-min branch from 380ca97 to ee55956 Compare January 12, 2025 20:51
* min version is much smaller than the the full image, allowing for faster CI startup
* updates ci-builder/Dockerfile with the first layer being the 'min' image
* update CI jobs to use 'min' image where possible
@ParkMyCar ParkMyCar force-pushed the build/ci-builder-min branch from ee55956 to c08788c Compare January 13, 2025 00:42
@ParkMyCar ParkMyCar requested a review from def- January 13, 2025 00:42
@ParkMyCar ParkMyCar marked this pull request as ready for review January 13, 2025 00:43
@ParkMyCar ParkMyCar requested a review from a team as a code owner January 13, 2025 00:43
Copy link
Contributor

@def- def- left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is incredible!

@ParkMyCar ParkMyCar merged commit 1e749b5 into main Jan 13, 2025
59 checks passed
@ParkMyCar ParkMyCar deleted the build/ci-builder-min branch January 13, 2025 13:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants