Skip to content

Commit 2eb1582

Browse files
committed
fix(release): produce a complete set of archives from runners that exist
- Install the target libc headers next to the aarch64 cross compiler, so a dependency carrying C sources can compile them for the target - Move the macOS builds onto runner images that are still offered, so the x86_64 build is scheduled instead of queueing forever - Collect every archive the run produced rather than the helpers alone, so the release carries the CLI it is named after
1 parent 1e6ce76 commit 2eb1582

1 file changed

Lines changed: 15 additions & 6 deletions

File tree

.github/workflows/release.yml

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,10 @@ jobs:
4646
runner: ubuntu-latest
4747
extension: ''
4848
archive: tar.gz
49+
# Pinned rather than macos-latest so the helpers and the CLI they are
50+
# loaded by are built against the same macOS version.
4951
- name: macos-aarch64
50-
runner: macos-latest
52+
runner: macos-15
5153
extension: ''
5254
archive: tar.gz
5355
- name: windows-x86_64
@@ -110,13 +112,13 @@ jobs:
110112
archive: tar.gz
111113
cross_linker: aarch64-linux-gnu-gcc
112114
- name: macos-x86_64
113-
runner: macos-13
115+
runner: macos-15-intel
114116
target: x86_64-apple-darwin
115117
extension: ''
116118
archive: tar.gz
117119
cross_linker: ''
118120
- name: macos-aarch64
119-
runner: macos-14
121+
runner: macos-15
120122
target: aarch64-apple-darwin
121123
extension: ''
122124
archive: tar.gz
@@ -132,10 +134,15 @@ jobs:
132134
- uses: dtolnay/rust-toolchain@stable
133135
with:
134136
targets: ${{ matrix.target }}
135-
- name: Install Linux cross linker
137+
# The cross compiler alone is not enough: dependencies that carry C sources
138+
# compile them for the target, and that needs the target's libc headers.
139+
- name: Install Linux cross toolchain
136140
if: matrix.cross_linker != ''
137141
shell: bash
138-
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends gcc-aarch64-linux-gnu
142+
run: |
143+
sudo apt-get update
144+
sudo apt-get install -y --no-install-recommends \
145+
gcc-aarch64-linux-gnu libc6-dev-arm64-cross
139146
- name: Build CLI
140147
shell: bash
141148
run: cargo build --locked --release -p codehelion --target ${{ matrix.target }}
@@ -174,9 +181,11 @@ jobs:
174181
needs: [verify-tag, build-helpers, build-cli]
175182
runs-on: ubuntu-latest
176183
steps:
184+
# Every artifact this run produced, with no pattern to narrow it: the
185+
# release carries both the CLI and the helpers, and a pattern that names
186+
# one of them drops the other from the release without failing.
177187
- uses: actions/download-artifact@v4
178188
with:
179-
pattern: helpers-*
180189
path: dist
181190
merge-multiple: true
182191
- name: Generate archive checksums

0 commit comments

Comments
 (0)