-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Parallelize submodule checkout #41335
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
Parallelize submodule checkout #41335
Conversation
Signed-off-by: Maciej Grela <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR optimizes CI build times by adding the --jobs 4
parameter to all checkout_submodules.py
script invocations, enabling parallel submodule checkout operations.
- Adds
--jobs 4
flag tocheckout_submodules.py
calls across build scripts and CI configurations - Targets improved CI performance through parallelized submodule operations
- Maintains existing functionality while reducing checkout time
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.
Show a summary per file
File | Description |
---|---|
src/darwin/Framework/chip_xcode_build_connector.sh | Added --jobs 4 to Darwin platform submodule checkout |
scripts/build/gn_gen_cirque.sh | Added --jobs 4 to Linux platform submodule checkout for Cirque builds |
integrations/docker/images/chip-cert-bins/Dockerfile | Added --jobs 4 to Docker image build submodule checkout |
integrations/cloudbuild/smoke-test.yaml | Added --jobs 4 to Cloud Build smoke test submodule checkout |
integrations/cloudbuild/chef.yaml | Added --jobs 4 to Cloud Build chef submodule checkout |
.github/workflows/examples-telink.yaml | Added --jobs 4 to GitHub Actions Telink example workflows |
.github/actions/checkout-submodules/action.yaml | Added --jobs 4 to reusable GitHub Actions submodule checkout action |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request is a great step towards improving CI performance by parallelizing submodule checkouts. My review focuses on making this parallelization more dynamic and efficient by adapting to the build environment's capabilities instead of using a hardcoded number of jobs. This will help maximize the performance gains across different CI runners and local development machines.
PR #41335: Size comparison from e72c900 to dea2527 Full report (37 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #41335 +/- ##
=======================================
Coverage 50.96% 50.96%
=======================================
Files 1378 1378
Lines 100595 100595
Branches 13023 13023
=======================================
Hits 51267 51267
Misses 49328 49328 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This reverts commit 82e6d0e. Signed-off-by: Maciej Grela <[email protected]>
This reverts commit 82e6d0e. Signed-off-by: Maciej Grela <[email protected]>
Summary
Run
submodule_checkout.py
with--jobs 4
for quicker environment preparation. This should slightly decrease CI time among others.Testing
No change to source or object code. I've been using
--jobs
in local workflows and in Jenkins for a long while without issue.Readability checklist
The checklist below will help the reviewer finish PR review in time and keep the
code readable:
descriptive
“When in Rome…”
rule (coding style)
See: Pull Request Guidelines