@@ -27,6 +27,17 @@ concurrency:
2727
2828permissions : read-all
2929
30+ # Pinned Chapel deb (Ubuntu 22.04 amd64; installs cleanly on the
31+ # ubuntu24 runner). SHA-256 verified against the GitHub Releases asset;
32+ # mismatch fails the install step. Bumped 2.3.0 -> 2.8.0 (issue #181)
33+ # to track sibling estate repos proven (#141) and panic-attack (#85),
34+ # both of which validated this URL+SHA combo against the same
35+ # `ubuntu-latest` runner image we use here.
36+ env :
37+ CHAPEL_VERSION : ' 2.8.0'
38+ CHAPEL_DEB_URL : ' https://github.com/chapel-lang/chapel/releases/download/2.8.0/chapel-2.8.0-1.ubuntu22.amd64.deb'
39+ CHAPEL_DEB_SHA256 : ' 944a454b8a791f344312fcd261b562871159b74f5ef41d81e11833eb21d85f60'
40+
3041jobs :
3142 # Job 1: Compile Chapel .chpl files into a static library.
3243 #
@@ -35,30 +46,35 @@ jobs:
3546 # compiling, the workflow fails.
3647 #
3748 # Why --static and not --dynamic:
38- # The official apt deb (chapel-2.3.0 -1.ubuntu24 .amd64.deb) ships only
39- # the CHPL_LIB_PIC=none runtime variant. Building a shared library
40- # requires CHPL_LIB_PIC=pic runtime objects which are not in the
41- # package; the linker rejects the non-PIC `libchpl.a` with
49+ # The official apt deb (chapel-${CHAPEL_VERSION} -1.ubuntu22 .amd64.deb)
50+ # ships only the CHPL_LIB_PIC=none runtime variant. Building a shared
51+ # library requires CHPL_LIB_PIC=pic runtime objects which are not in
52+ # the package; the linker rejects the non-PIC `libchpl.a` with
4253 # `relocation R_X86_64_TPOFF32 ... can not be used when making a
4354 # shared object`. Until the CI image ships a PIC-enabled runtime
44- # (or we adopt a from-source Chapel build), the metalayer is
55+ # (or we adopt a from-source Chapel build via the
56+ # `chapel-pic-from-source` Justfile recipe), the metalayer is
4557 # distributed as `libechidna_chapel.a` and the Zig FFI links it
4658 # statically.
4759 chapel-build :
4860 name : Compile Chapel Metalayer
49- runs-on : ubuntu-latest
61+ runs-on : ubuntu-22.04
5062 steps :
5163 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
5264
53- - name : Install Chapel
65+ - name : Install Chapel ${{ env.CHAPEL_VERSION }} (SHA-pinned .deb)
5466 run : |
55- # Install Chapel from official apt repository.
56- # SHA256 of the deb is pinned for supply-chain integrity; bump
57- # alongside the version tag when upgrading.
58- curl -fsSL --max-time 300 \
59- https://github.com/chapel-lang/chapel/releases/download/2.3.0/chapel-2.3.0-1.ubuntu24.amd64.deb \
60- -o /tmp/chapel.deb
61- sudo dpkg -i /tmp/chapel.deb || sudo apt-get install -f -y
67+ set -euo pipefail
68+ # libunwind-dev is a runtime link-time dep for chpl-built binaries
69+ # on the ubuntu .deb path; sibling estate repo panic-attack (#85)
70+ # established this preinstall as the working pattern, reused by
71+ # proven (#141). Without it the chapel-build smoke link fails with
72+ # `error while loading shared libraries: libunwind.so.8`.
73+ sudo apt-get update -qq
74+ sudo apt-get install -y libunwind-dev
75+ curl -fsSL --max-time 300 --retry 3 -o /tmp/chapel.deb "$CHAPEL_DEB_URL"
76+ echo "$CHAPEL_DEB_SHA256 /tmp/chapel.deb" | sha256sum --check
77+ sudo apt-get install -y /tmp/chapel.deb
6278 chpl --version
6379
6480 - name : Compile Chapel proof search library (static)
93109 # `src/zig_ffi/build.zig`.
94110 zig-ffi :
95111 name : Build & Test Zig FFI Bridge
96- runs-on : ubuntu-latest
112+ runs-on : ubuntu-22.04
97113 steps :
98114 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
99115
@@ -121,7 +137,7 @@ jobs:
121137 # Re-enable strict gating once #133's Chapel + FFI rehabilitation lands.
122138 rust-chapel-feature :
123139 name : Rust Build with Chapel Feature
124- runs-on : ubuntu-latest
140+ runs-on : ubuntu-22.04
125141 needs : zig-ffi
126142 continue-on-error : true
127143 steps :
@@ -159,18 +175,20 @@ jobs:
159175 # and flip this job to strict.
160176 rust-chapel-real :
161177 name : Rust Build — Real Chapel Library (allow-fail, L2.3+ gate)
162- runs-on : ubuntu-latest
178+ runs-on : ubuntu-22.04
163179 needs : [chapel-build, zig-ffi]
164180 continue-on-error : true
165181 steps :
166182 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
167183
168- - name : Install Chapel
184+ - name : Install Chapel ${{ env.CHAPEL_VERSION }} (SHA-pinned .deb)
169185 run : |
170- curl -fsSL --max-time 300 \
171- https://github.com/chapel-lang/chapel/releases/download/2.3.0/chapel-2.3.0-1.ubuntu24.amd64.deb \
172- -o /tmp/chapel.deb
173- sudo dpkg -i /tmp/chapel.deb || sudo apt-get install -f -y
186+ set -euo pipefail
187+ sudo apt-get update -qq
188+ sudo apt-get install -y libunwind-dev
189+ curl -fsSL --max-time 300 --retry 3 -o /tmp/chapel.deb "$CHAPEL_DEB_URL"
190+ echo "$CHAPEL_DEB_SHA256 /tmp/chapel.deb" | sha256sum --check
191+ sudo apt-get install -y /tmp/chapel.deb
174192 chpl --version
175193
176194 - name : Install Zig
0 commit comments