-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Darwin CI: use macos-13 runners and other tweaks #32748
Darwin CI: use macos-13 runners and other tweaks #32748
Conversation
726e8be
to
7a206fa
Compare
PR #32748: Size comparison from ef01670 to 7a206fa Decreases (1 build for efr32)
Full report (72 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, stm32, telink)
|
08f4af8
to
21a2ff6
Compare
PR #32748: Size comparison from 4e582fc to 21a2ff6 Full report (38 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, k32w, linux, mbed, nrfconnect, psoc6, qpg, stm32)
|
6b1b915
to
3ccacf1
Compare
PR #32748: Size comparison from 4e582fc to 3ccacf1 Full report (40 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, stm32)
|
3823472
to
9c9703b
Compare
According to github docs these have 4 CPUs (vs 3 for macos-12 == latest). In practice compile steps seem to be about 7% faster. Also use the pre-installed Python (3.12), remove the "aggregation" step, and run crash log collection after failure (not success), and condense disk space output to large directories only.
This avoids caching a corrupted cache in cases where a job modifies the environment (e.g. the Darwin job hiding zap-cli). It also makes the cache available slightly sooner. Also add plumbing for splitting caches over buildjet and github backends.
9c9703b
to
fecc7af
Compare
PR #32748: Size comparison from 4e582fc to fecc7af Decreases (1 build for efr32)
Full report (72 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, stm32, telink)
|
PR #32748: Size comparison from 4e582fc to f5cd6cc Decreases (1 build for efr32)
Full report (72 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, stm32, telink)
|
|
||
tests: | ||
name: Run framework tests | ||
if: github.actor != 'restyled-io[bot]' | ||
runs-on: macos-latest | ||
needs: [ framework ] # serialize to avoid running to many parallel macos runners |
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.
"too many"
@@ -134,24 +131,15 @@ jobs: | |||
tv-casting-bridge: | |||
name: Build TV Casting Bridge example | |||
if: github.actor != 'restyled-io[bot]' | |||
runs-on: macos-latest | |||
needs: [ framework ] # serialize to avoid running to many parallel macos runners |
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.
"too many"
- uses: Wandalen/[email protected] | ||
name: Bootstrap from cache | ||
id: bootstrap-cache | ||
# Split caches across backends |
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.
This could use comments explaining why we are doing that. Because I don't understand why we're doing that.
|
||
tests: | ||
name: Run framework tests | ||
if: github.actor != 'restyled-io[bot]' | ||
runs-on: macos-latest | ||
needs: [ framework ] # serialize to avoid running to many parallel macos runners |
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.
Does this really help things? My mental model is that each job that runs in a separate runner has some fixed overhead (checkout, bootstrap) plus whatever work it actually needs to do. Serializing things but still using separate runners does not remove any of the fixed overhead, right?
So it increases latency to completion for a single PR, probably does not decrease latency to completion when multiple PRs need jobs run in parallel. Might reduce latency to error detection when multiple PRs are run in parallel.
Again, if there is a benefit here that I am missing, maybe the comments could more clearly talk about the tradeoffs and why we are making this one?
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.
This is somewhat experimental... will see if this makes the overall queueing behavior worse or better.
According to github docs these have 4 CPUs (vs 3 for macos-12 == latest). In practice compile steps seem to be about 7% faster.
Also use the pre-installed Python (3.12), remove the "aggregation" step, and run crash log collection after failure (not success).
Tweak bootstrap caching to save the cache right after bootstrap, so it doesn't matter if the build makes changes to the environment (like messing with zap-cli). Also allow us to split caches between GitHub and BuildJet (GitHub provides insight into what is actually cached but only 10G of storage).