fix: speed up CI - #634
Conversation
The multiArch=false path skips architectures whose name doesn't match the host arch, but ARCHITECTURES uses Maven's classifier spelling 'aarch_64' while `arch` reports 'aarch64'. On the ARM runner this mismatch caused every arch to be skipped, so no .so was built and the unit tests crashed loading the native library. Normalize the host arch to 'aarch_64' before comparing.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #634 +/- ##
============================================
+ Coverage 65.38% 65.79% +0.40%
- Complexity 212 213 +1
============================================
Files 34 34
Lines 991 991
Branches 143 143
============================================
+ Hits 648 652 +4
+ Misses 290 287 -3
+ Partials 53 52 -1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Nice speedup! One thing I noticed is that making build and smoke-test matrix jobs changes the check names to build (x86_64) etc. Main requires a check named just build, so it's stuck pending. So a build-arch job with a build job aggregator, that would keep the build check reporting without touching the branch protection. |
|
@darklight3it I think your comment got truncated? |
|
@maxday fine for me as long as we create the new PR immediately I don't want dead code to stay long. The package is already huge and confusing. |
Speeds up the Runtime Interface Client (RIC) CI by running each architecture on a native GitHub runner instead of cross-building both architectures on a single x86_64 runner under QEMU emulation.
Previously the
buildandsmoke-testjobs ran onubuntu-latestand used QEMU to emulatelinux/arm64/v8. Under emulationmvn installrecompiles curl for aarch64, which took ~30 minutes. This PR splits the work per-architecture so the aarch64 half runs on a native ARM runner (ubuntu-24.04-arm), eliminating the emulation cost.Results:
Measured on the RIC PR workflow (both jobs run in parallel, so the reported wall-clock is the longest job).
buildsmoke-testNet gain: ~33 minutes faster (~71% reduction) in end-to-end CI time. The bulk of the saving comes from
smoke-test, which dropped from ~46 min to ~9 min (~37 min, ~80% faster) by eliminating the emulated aarch64 curl recompile.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.