Skip to content

ci: workflow hygiene (concurrency, timeouts, loongarch fold, mips64, fork-safe codecov) - #346

Merged
ViralBShah merged 4 commits into
JuliaMath:masterfrom
ViralBShah:ci-hygiene
Jun 22, 2026
Merged

ViralBShah merged 4 commits into
JuliaMath:masterfrom
ViralBShah:ci-hygiene

Conversation

@ViralBShah

Copy link
Copy Markdown
Member

Summary

Low-risk CI cleanups. Each item is independently revertable.

  • Fold cross-loongarch64.yml into cross.yml. The TODO in that file noted it should merge once Ubuntu shipped gcc-loongarch64-linux-gnu; the unversioned package still doesn't exist, but a single matrix entry with per-entry gcc_pkg/cc/ar overrides (resolved via ${{ ... || ... }}) handles it cleanly without a second workflow file.
  • Concurrency groups on both workflows: superseded runs on the same ref auto-cancel. Cuts wasted minutes on force-pushes.
  • timeout-minutes: 10 on every job. Default is 6h; a hung qemu/MSYS2 step shouldn't sit there.
  • actions/checkout@v7. Only breaking change is fork-PR blocking in pull_request_target/workflow_run flows — neither is used here.
  • Parallelism standardized. $(nproc) on Linux/MSYS2, $(getconf _NPROCESSORS_ONLN) on macOS (no nproc by default). Replaces inconsistent -j`nproc` and bare -j.
  • cross.yml now runs make test under qemu-user-binfmt with QEMU_LD_PREFIX + LD_LIBRARY_PATH=., instead of explicitly invoking each test/test-* binary. Adding a new test binary to the Makefile no longer requires editing the workflow.
  • Uncomment mips64 / mips64el. They were disabled with a "tests fail" comment; surfacing the failure (or not) is more useful than the silence.
  • Guard the Codecov upload with if: github.event_name != 'pull_request' || ... head.repo.full_name == github.repository. Forked-PR runs have no CODECOV_TOKEN, so the upload was silently no-op'ing. Now it's explicit.

Not included (deferred / out of scope):

Test plan

🤖 Generated with Claude Code

Bundles a few low-risk improvements:

- Fold cross-loongarch64.yml into cross.yml; loongarch64 needs the
  versioned gcc-14 package and per-entry CC/AR overrides, expressed
  via optional matrix fields with `||` fallbacks.
- Add concurrency groups so superseded runs auto-cancel.
- Add timeout-minutes: 10 to all jobs so a hung qemu/MSYS2 step
  fails fast instead of consuming the 6h default.
- Bump actions/checkout to v7 (only breaking change is fork PR
  blocking in pull_request_target/workflow_run, neither used here).
- Standardize parallelism: $(nproc) on Linux/MSYS2,
  $(getconf _NPROCESSORS_ONLN) on macOS (no `nproc` by default).
- cross.yml runs `make test` under qemu-user-binfmt with
  QEMU_LD_PREFIX + LD_LIBRARY_PATH so new tests added to the
  Makefile target are picked up without editing the workflow.
- Uncomment mips64/mips64el (per maintainer request) to surface
  whatever fails under newer qemu.
- Guard the Codecov upload so it's skipped on forked-PR runs where
  the token isn't exposed.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
ViralBShah and others added 3 commits June 22, 2026 18:20
Failures are spurious FPU exception flags under qemu-user on
Ubuntu 24.04 — computed values are correct, only the post-call
"Divide by zero" / "Invalid operation" flag state disagrees.
32-bit mips/mipsel pass cleanly under the same setup.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Ubuntu 26.04 ships qemu 10.2.1 (vs 8.2 on 24.04). The MIPS64 n64
FPU flag handling that surfaced as spurious "Divide by zero" /
"Invalid operation" failures on 24.04 should be fixed in qemu 10.x.

Per-entry runs-on override keeps the rest of the matrix on 24.04.

Refs JuliaMath#347.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Bumping the runner to ubuntu-26.04 to get qemu 10.x doesn't work:
Ubuntu 26.04 dropped gcc-mips64-linux-gnuabi64 entirely (Debian's
broader MIPS deprecation). 24.04 has the toolchain but the qemu
8.2 FPU flag bug; 26.04 has new qemu but no cross-gcc.

Refs JuliaMath#347.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
@ViralBShah
ViralBShah merged commit a336ec3 into JuliaMath:master Jun 22, 2026
20 checks passed
social4hyq pushed a commit to social4hyq/homebrew-core that referenced this pull request Sep 20, 2026
openlibm 0.8.8

Created-by: HarmonybrewBot
Commit-by: HarmonybrewBot
Merged-by: HarmonybrewBot
Description: Created by `brew bump`

---

Created with `brew bump-formula-pr`.<details>
  <summary>release notes</summary>
  <pre>## What's Changed
* Update riscv64 fenv.c initialization to fix warnings by @ViralBShah in JuliaMath/openlibm#330
* Musl compatibility fixes for s390 and powerpc by @sertonix in JuliaMath/openlibm#331
* Fix cmake error for 4.x by @HIllya51 in JuliaMath/openlibm#333
* Bump actions/checkout from 4 to 5 by @dependabot[bot] in JuliaMath/openlibm#335
* Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in JuliaMath/openlibm#336
* Bump actions/checkout from 5 to 6 by @dependabot[bot] in JuliaMath/openlibm#338
* Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in JuliaMath/openlibm#339
* Bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in JuliaMath/openlibm#341
* Bump codecov/codecov-action from 5 to 6 by @dependabot[bot] in JuliaMath/openlibm#342
* ci: add native ARM (Linux + Windows) and Intel macOS runners by @ViralBShah in JuliaMath/openlibm#345
* ci: workflow hygiene (concurrency, timeouts, loongarch fold, mips64, fork-safe codecov) by @ViralBShah in JuliaMath/openlibm#346
* riscv: Fix feholdexcept() by @AlekseyZhmulin in JuliaMath/openlibm#324
* CI: add -Werror strict lane and an auto-discovered regression-test harness by @ViralBShah in JuliaMath/openlibm#350
* ci: speed up Windows jobs by trimming the msys2 install by @ViralBShah in JuliaMath/openlibm#354
* ci: make codecov coverage status informational by @ViralBShah in JuliaMath/openlibm#358
* riscv: allow single-precision float ABI (lp64f / ilp32f) by @ViralBShah in JuliaMath/openlibm#349
* Fix powl() returning NaN instead of +0 on extreme underflow (#334) by @ViralBShah in JuliaMath/openlibm#351
* Make powl() thread-safe (#222) by @ViralBShah in JuliaMath/openlibm#355
* Bump codecov/codecov-action from 6 to 7 by @dependabot[bot] in JuliaMath/openlibm#359
* riscv64: Keep hard-float fenv functions private by @maleadt in JuliaMath/openlibm#360

## New Contributors
* @sertonix made their first contribution in JuliaMath/openlibm#331
* @HIllya51 made their first contribution in JuliaMath/openlibm#333
* @AlekseyZhmulin made their first contribution in JuliaMath/openlibm#324

**Full Changelog**: https://github.com/JuliaMath/openlibm/compare/v0.8.7...v0.8.8</pre>
  <p>View the full release notes at <a href="https://github.com/JuliaMath/openlibm/releases/tag/v0.8.8">https://github.com/JuliaMath/openlibm/releases/tag/v0.8.8</a>.</p>
</details>
<hr>

See merge request: Harmonybrew/homebrew-core!18388
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