Skip to content

ci: Build Linux ARM64 packages - #7

Merged
wolfv merged 2 commits into
wolfv:mainfrom
visr:ci/linux-aarch64
Jul 27, 2026
Merged

ci: Build Linux ARM64 packages#7
wolfv merged 2 commits into
wolfv:mainfrom
visr:ci/linux-aarch64

Conversation

@visr

@visr visr commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

What changed

  • add linux-aarch64 to the shared build matrix
  • run it natively on GitHub's ubuntu-24.04-arm runner, without emulation

Why

Both julia/recipe.yaml and julia-lts/recipe.yaml already define Linux AArch64 sources and checksums, but CI omitted that target. As a result, the julia-forge channels do not publish Linux AArch64 packages and downstream users cannot resolve Julia 1.12.6 on that platform.

Because release and LTS builds share this matrix, the new job builds and tests both recipes. The existing trusted-publishing steps then upload the release package to julia-forge and the LTS package to both julia-forge-lts and julia-forge on pushes or manual runs.

Validation

Rendered and solved both recipes locally with --target-platform linux-aarch64:

  • release: Julia 1.12.6, selecting the existing Linux AArch64 URL and checksum
  • LTS: Julia 1.10.11, selecting the existing Linux AArch64 URL and checksum

The PR workflow will perform the full builds and Julia smoke tests natively on ARM64.

Background

I ran into this switching from conda-forge/juliaup to julia-forge/julia in Deltares/Ribasim#3176. I used AI (GPT-5.6) to make this PR, but reviewed it myself.

visr and others added 2 commits July 27, 2026 16:01
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Allow setup-pixi to install the locked default environment on the native ARM64 CI runner.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@wolfv

wolfv commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Thanks!

@wolfv
wolfv merged commit 98ed8be into wolfv:main Jul 27, 2026
4 checks passed
@visr
visr deleted the ci/linux-aarch64 branch July 27, 2026 16:23
SouthEndMusic pushed a commit to Deltares/Ribasim that referenced this pull request Jul 28, 2026
## Summary

- install Julia 1.12.6 directly from the `julia-forge` Pixi channel on
all supported platforms
- explicitly pin Julia to `julia-forge` so future solves cannot select
another channel
- remove redundant JuliaUp preparation from CI workflows
- let VS Code use Julia from the activated Pixi environment

This follows the approach from Deltares/Wflow.jl#1017.

Linux ARM64 packages were enabled upstream in
wolfv/julia-forge#7, allowing Ribasim to use one
Julia dependency across all four platforms without a JuliaUp fallback.

## Validation

- `pixi search julia -c https://prefix.dev/julia-forge --platform
linux-aarch64`
- `pixi lock` across all four supported platforms
- `pixi run --locked julia --version` (`1.12.6`)
- verified every locked Julia package comes from `julia-forge`
- `pixi run prek run --files pixi.toml pixi.lock`
- `git diff --check`

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

2 participants