Skip to content

Commit 17064b6

Browse files
authored
fix(ci): make publish job depend only on Linux build (#74)
Previously the publish job's `needs:` required all four platform builds (macOS arm64, Linux amd64, Linux arm64, Windows amd64) to succeed before any release assets were published. A flaky build on any single platform blocked the entire release. Linux amd64 binaries are the immediate consumer (MIOSA Firecracker rootfs install.sh, which fetches osa-linux-amd64 from releases/latest/download). macOS arm64, Linux arm64, and Windows amd64 build jobs still run in parallel — they just don't gate the release anymore. They can be added back to `needs:` and `files:` once their build pipelines are confirmed stable. Changes: - publish.needs: list of 4 platforms → "build-linux-amd64" only - Download step: download-all-artifacts → download named artifact "osa-linux-amd64" only - chmod step: 3 chmod calls → 1 - softprops files: 4 entries → 1 (Linux amd64) The other build jobs are intentionally left in place. They still exercise the macOS/Linux-arm64/Windows pipelines on every release tag, surfacing breakage in CI without blocking shipment. When all platforms are confirmed stable across consecutive releases, this change can be reverted to restore multi-platform publishing.
1 parent 87d66ae commit 17064b6

1 file changed

Lines changed: 14 additions & 15 deletions

File tree

.github/workflows/release.yml

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -203,28 +203,30 @@ jobs:
203203
path: burrito_out/osa-windows-amd64.exe
204204

205205
# ── Publish GitHub Release ────────────────────────────────────────────
206+
#
207+
# Depends ONLY on the Linux amd64 build. macOS, Linux arm64, and Windows
208+
# builds still run in parallel above — they just don't block publishing.
209+
# Rationale: a flaky build on any single platform should not hold the
210+
# entire release hostage. Linux amd64 binaries are the immediate consumer
211+
# (MIOSA Firecracker rootfs install.sh). Other platforms can be added
212+
# back to `needs:` and `files:` once their build pipelines are confirmed
213+
# stable.
206214
publish:
207-
needs:
208-
- build-macos-arm64
209-
- build-linux-amd64
210-
- build-linux-arm64
211-
- build-windows-amd64
215+
needs: build-linux-amd64
212216
runs-on: ubuntu-22.04
213217
permissions:
214218
contents: write # required to create the GitHub Release
215219
steps:
216220
- uses: actions/checkout@v4
217221

218-
- name: Download all binaries
222+
- name: Download Linux amd64 binary
219223
uses: actions/download-artifact@v4
220224
with:
221-
path: release-assets
225+
name: osa-linux-amd64
226+
path: release-assets/osa-linux-amd64
222227

223-
- name: Make Linux/macOS binaries executable
224-
run: |
225-
chmod +x release-assets/osa-darwin-arm64/osa-darwin-arm64
226-
chmod +x release-assets/osa-linux-amd64/osa-linux-amd64
227-
chmod +x release-assets/osa-linux-arm64/osa-linux-arm64
228+
- name: Make Linux binary executable
229+
run: chmod +x release-assets/osa-linux-amd64/osa-linux-amd64
228230

229231
- name: Create GitHub Release and upload assets
230232
uses: softprops/action-gh-release@v2
@@ -235,7 +237,4 @@ jobs:
235237
prerelease: ${{ contains(github.ref_name, '-') }}
236238
generate_release_notes: true
237239
files: |
238-
release-assets/osa-darwin-arm64/osa-darwin-arm64
239240
release-assets/osa-linux-amd64/osa-linux-amd64
240-
release-assets/osa-linux-arm64/osa-linux-arm64
241-
release-assets/osa-windows-amd64/osa-windows-amd64.exe

0 commit comments

Comments
 (0)