@@ -22,6 +22,11 @@ concurrency:
2222 group : benchmark
2323 cancel-in-progress : false
2424
25+ # Run JS-based actions (checkout, setup-julia, and the actions/cache + pyTooling
26+ # steps vendored inside julia-actions/cache) on Node 24 — Node 20 is deprecated.
27+ env :
28+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 : " true"
29+
2530jobs :
2631 tests :
2732 name : Gate — full test suite
@@ -30,18 +35,24 @@ jobs:
3035 contents : read
3136
3237 bench :
33- name : Benchmark (Julia ${{ matrix.julia }})
38+ name : Benchmark (${{ matrix.hardware }} · Julia ${{ matrix.julia }})
3439 needs : tests
35- runs-on : ubuntu-latest
40+ runs-on : ${{ matrix.runner }}
3641 permissions :
3742 contents : write # pushes result files
3843 strategy :
3944 fail-fast : false
40- max-parallel : 1 # serialize commits between Julia versions
45+ max-parallel : 1 # serialize commits across every hardware/ Julia leg
4146 matrix :
42- julia : ["1.10", "1.11", "1.12"]
47+ include :
48+ - { julia: "1.10", runner: ubuntu-latest, hardware: github-actions-ubuntu }
49+ - { julia: "1.11", runner: ubuntu-latest, hardware: github-actions-ubuntu }
50+ - { julia: "1.12", runner: ubuntu-latest, hardware: github-actions-ubuntu }
51+ - { julia: "1.10", runner: [self-hosted, ARM64, pi5], hardware: rpi5-8gb }
52+ - { julia: "1.11", runner: [self-hosted, ARM64, pi5], hardware: rpi5-8gb }
53+ - { julia: "1.12", runner: [self-hosted, ARM64, pi5], hardware: rpi5-8gb }
4354 env :
44- RXBENCH_HARDWARE_ID : github-actions-ubuntu
55+ RXBENCH_HARDWARE_ID : ${{ matrix.hardware }}
4556 USE_DEV : " false"
4657 LOG_USING_RXINFER : " false"
4758 JULIA_FASTCHOLESKY_THROW_ERROR_NON_SYMMETRIC : " 1"
90101 echo "no new results"
91102 exit 0
92103 fi
93- git commit -m "bench: results for ${GITHUB_SHA::7} (julia ${{ matrix.julia }}) [skip ci]"
104+ git commit -m "bench: results for ${GITHUB_SHA::7} (${{ matrix.hardware }} julia ${{ matrix.julia }}) [skip ci]"
94105 # Another matrix leg may have pushed first. Result files live in disjoint
95106 # folders, but the regenerated index.json/mirrors can conflict — resolve by
96107 # regenerating them from the union (they are wholesale-generated artifacts).
0 commit comments