Skip to content

👷 Reduce compute used by check runs - #130

Merged
kammce merged 1 commit into
mainfrom
ci-cost-reduction
Oct 17, 2026
Merged

kammce merged 1 commit into
mainfrom
ci-cost-reduction

Conversation

@kammce

@kammce kammce commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

Cuts the compute used by CI on pull requests and pushes, without changing what deploys build.

Changes

  • Check vs. deploy mode in package_and_upload_all.yml. When version is latest (nothing is uploaded):

    • only MinSizeRel is built;
    • Cortex-M builds a sample of architectures in one job: M0+ (when coroutines aren't needed), M3, M4F and M33F. The LLVM job is named "🐉 LLVM Arm Cortex M sample".
    • the GCC Cortex-M job uses the same sample.

    Deploys (a version is set) still build every build type and architecture.

    A first 📋 Plan job makes these choices in one shell if/else and outputs the build types and Cortex-M job list. The build jobs read those outputs, so the rule lives in one place.

  • Timeouts: 30 min for host package builds and tests, 45 min for Cortex-M, 15 min for lint and docs. The last two Self Check runs on main had Mac jobs hang for 6 hours (LLVM 20 ASan deadlock on macOS 26).

  • baremetal_package.sh --build-types picks which build types to create. It defaults to all three.

  • package_and_upload.yml gets a build_types input, and its step names now show the compiler profile instead of the undefined inputs.profile.

  • Self Check's package filter now includes baremetal_package.sh.

Notes

  • Consumers get the reductions once 5.x.y moves. They need no changes.
  • libhal v4's unit tests still hang on macOS 26 with ASan. That's fixed separately in libhal by turning ASan off for v4 (as in libhal-util#112). Until that lands, Self Check's package-libhal_v4 Mac job will hit the new 30-minute timeout.

@kammce
kammce force-pushed the ci-cost-reduction branch from 723b317 to 2e07b80 Compare October 16, 2026 23:26
package_and_upload_all.yml now has two modes. Check runs (version
"latest", nothing uploaded) build MinSizeRel only and a sample of
Cortex-M architectures (M0+ when allowed, M3, M4F, M33F). Deploys still
build every build type and architecture. A first "Plan" job picks the
build types and architectures in one shell script, and the build jobs
read its outputs.

Every build job gets a timeout so a hung runner (e.g. the LLVM 20 ASan
deadlock on macOS 26) can no longer run for six hours.

baremetal_package.sh gains --build-types, and the package step names now
show the compiler profile instead of an undefined input.
@kammce
kammce force-pushed the ci-cost-reduction branch from 2e07b80 to 626c8dd Compare October 16, 2026 23:49
@kammce
kammce merged commit f286a2b into main Oct 17, 2026
40 checks passed
@kammce
kammce deleted the ci-cost-reduction branch October 17, 2026 00:07
kammce added a commit that referenced this pull request Oct 17, 2026
Adds a semantic-release workflow for this repository, so ci releases are
cut from commit subjects like every other libhal repository instead of
by hand. It calls this repository's semantic_release.yml at the pushed
commit, with one line for 5.x from the repository root.

Merging this releases 5.25.0, the first release with
semantic_release.yml (#129) and the reduced check runs (#130).
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.

1 participant