From c17a3a3e50282f6ae50165e33eec10ec588198fa Mon Sep 17 00:00:00 2001 From: Harshit Singh Bhandari Date: Wed, 22 Jul 2026 22:40:27 +0530 Subject: [PATCH] ci(build-artifacts): emit Linux .deb as linux-deb artifact The release migration dropped the Linux .deb that current releases ship: build-artifacts.yml only captured the AppImage. forge.config.ts already runs @electron-forge/maker-deb on linux, so capture its output too: copy it to the version-less alias agent-orchestrator-linux-x64.deb, upload it as a separate linux-deb run artifact (retention 1 day), and merge its sha256 into the linux-x64 digest fragment so digests.json gains the agent-orchestrator-linux-x64.deb key. Additive only: the mac/win legs, the four existing artifacts, and signing are untouched. The deb lives in its own dist-deb dir so the linux artifact's glob cannot pick it up. Closes #2983 Co-Authored-By: Claude Fable 5 --- .github/workflows/build-artifacts.yml | 28 +++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/.github/workflows/build-artifacts.yml b/.github/workflows/build-artifacts.yml index 0d78a131fb..97be649ae8 100644 --- a/.github/workflows/build-artifacts.yml +++ b/.github/workflows/build-artifacts.yml @@ -114,6 +114,34 @@ jobs: jq -n --arg f "$name" --arg h "$hash" \ '{($f): $h}' > "dist-artifact/$PLATFORM.digest.json" echo "$PLATFORM: $name sha256=$hash" >> "$GITHUB_STEP_SUMMARY" + # The deb maker in forge.config.ts also runs on linux; capture its output + # as a separate `linux-deb` artifact. It lives in its own dist-deb dir so + # the `linux` artifact's agent-orchestrator-linux-x64.* glob below cannot + # pick it up. Its digest is merged into the linux-x64 digest fragment so + # the digests job still reads one fragment per platform. + - name: Collect Linux .deb and compute digest + if: matrix.platform == 'linux-x64' + shell: bash + run: | + mkdir -p dist-deb + # maker-deb output: out/make/deb/x64/__amd64.deb + src="$(find out/make -name '*.deb' | head -n1)" + if [ -z "$src" ]; then echo "no .deb output found" >&2; exit 1; fi + name="agent-orchestrator-linux-x64.deb" + cp "$src" "dist-deb/$name" + hash="$(openssl dgst -sha256 "dist-deb/$name" | awk '{print $NF}')" + jq --arg f "$name" --arg h "$hash" '. + {($f): $h}' \ + dist-artifact/linux-x64.digest.json > dist-artifact/linux-x64.digest.json.tmp + mv dist-artifact/linux-x64.digest.json.tmp dist-artifact/linux-x64.digest.json + echo "linux-x64: $name sha256=$hash" >> "$GITHUB_STEP_SUMMARY" + - name: Upload Linux .deb artifact + if: matrix.platform == 'linux-x64' + uses: actions/upload-artifact@v4 + with: + name: linux-deb + path: frontend/dist-deb/agent-orchestrator-linux-x64.deb + retention-days: 1 + if-no-files-found: error - name: Upload artifact uses: actions/upload-artifact@v4 with: