feat(release): attach Linux x86_64 binary artifacts (BUNYIP-25) #9
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/release-binaries-BUNYIP-25"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Closes the binary half of BUNYIP-3 (Docker shipped in PR #6, binaries did not). On every Forgejo release, attach
bunyip-api(static musl) +bunyip-webstatic bundle as tarballs so self-hosters can deploy without Docker.Changes
bunyip-api/oci-build/Dockerfile: newFROM scratch AS exportstage (placed before the runtime stage so the default-built image stays the alpine runtime) that surfaces the compiled binary +seeds/. Builder stage already produces a statically-linked musl binary (musl-dev + openssl-libs-static + lld), so the extracted artifact runs on any Linux without further dependencies.bunyip-web/oci-build/Dockerfile: same pattern, exporting the dx-builtpublic/(WASM + assets). Arch-independent..forgejo/workflows/create-release.yml: newbinariesjob,needs: tag-and-release. Usesdocker buildx build --target export --output type=local,dest=...against each Dockerfile to extract artifacts without dragging in the rest of the builder filesystem. Packagesbunyip-api-vX.Y.Z-x86_64-linux-musl.tar.gz,bunyip-web-vX.Y.Z-static.tar.gz,SHA256SUMSand uploads each via ForgejoPOST /releases/{id}/assets. Per-asset existence check makes reruns idempotent (a partially failed previous run can re-execute without producing duplicates).README.md: "Self-host" gains a "Without Docker (Linux x86_64)" subsection covering download / verify / extract / run.dev-docs/milestone-1-handoff.md: short follow-up section noting this completes the binary half of BUNYIP-3.What's NOT in this PR
Test plan
bunyip-api-vX.Y.Z-x86_64-linux-musl.tar.gz,bunyip-web-vX.Y.Z-static.tar.gz, andSHA256SUMSare attached to the Forgejo release.sha256sum --check SHA256SUMSagainst downloaded artifacts passes.bunyip-apibinary runs on a non-Alpine Linux (e.g. Debian) without modification.public/dir serves correctly under a plain Caddy / nginx pointing at it.binariesjob manually after a successful run; verify all uploads skip with "already attached" log lines (no duplicates created).Refs: BUNYIP-25, BUNYIP-3, PSA-1