fix(release): publish binaries to psa-systems-private Generic Packages #12

Merged
nrupard merged 1 commit from fix/release-binaries-to-generic-packages into main 2026-05-28 20:46:36 +02:00
Owner

Summary

BUNYIP-25's first implementation put binary tarballs on the Forgejo release object at psa-systems/bunyip. Wrong destination - the project convention (and the message printed by just create-release) is to publish to the psa-systems-private/bunyip Generic Packages registry, same org that hosts the OCI images.

Change

.forgejo/workflows/create-release.yml binaries job: swap the upload step from POST /api/v1/repos/{owner}/{repo}/releases/{id}/assets to PUT /api/packages/psa-systems-private/generic/bunyip/{tag}/{file}. Idempotency mechanism switches from per-asset name lookup to HTTP-status interpretation:

  • 201 -> uploaded
  • 409 -> already exists at that name + version, treated as success (safe to rerun)
  • anything else -> real error

Package owner / name are exposed as env: block on the step (psa-systems-private / bunyip) so they're swappable without code changes.

README.md "Without Docker" section: download URLs swap to the packages API and gain an Authorization: token header example (the registry is private, same as the OCI registry, so downloads require a read:package-scoped token).

dev-docs/milestone-1-handoff.md: BUNYIP-25 section updated and includes a one-line note about the v0.1.1 misplaced artifacts so future readers know why orphan attachments may exist on the release.

Cleanup the user may want to do

Run fj release asset delete v0.1.1 <name> for bunyip-api-v0.1.1-x86_64-linux-musl.tar.gz, bunyip-web-v0.1.1-static.tar.gz, and SHA256SUMS on the v0.1.1 release at psa-systems/bunyip to remove the misplaced attachments. (No code action required - happy to do this in the next step if you want.)

Test plan

  • Merge.
  • fj actions dispatch create-release.yml main to re-run against current Cargo.toml (still v0.1.1).
  • Confirm tag-and-release skips (tag + release exist).
  • Confirm binaries job runs and https://dev.a8n.run/psa-systems-private/-/packages lists a bunyip generic package at v0.1.1 with the three files.
  • Re-dispatch; confirm 409-on-retry path logs "already exists; skipping" instead of failing.

Refs: BUNYIP-25

## Summary BUNYIP-25's first implementation put binary tarballs on the Forgejo release object at `psa-systems/bunyip`. Wrong destination - the project convention (and the message printed by `just create-release`) is to publish to the `psa-systems-private/bunyip` Generic Packages registry, same org that hosts the OCI images. ## Change `.forgejo/workflows/create-release.yml` `binaries` job: swap the upload step from `POST /api/v1/repos/{owner}/{repo}/releases/{id}/assets` to `PUT /api/packages/psa-systems-private/generic/bunyip/{tag}/{file}`. Idempotency mechanism switches from per-asset name lookup to HTTP-status interpretation: - `201` -> uploaded - `409` -> already exists at that name + version, treated as success (safe to rerun) - anything else -> real error Package owner / name are exposed as `env:` block on the step (`psa-systems-private` / `bunyip`) so they're swappable without code changes. `README.md` "Without Docker" section: download URLs swap to the packages API and gain an `Authorization: token` header example (the registry is private, same as the OCI registry, so downloads require a `read:package`-scoped token). `dev-docs/milestone-1-handoff.md`: BUNYIP-25 section updated and includes a one-line note about the v0.1.1 misplaced artifacts so future readers know why orphan attachments may exist on the release. ## Cleanup the user may want to do Run `fj release asset delete v0.1.1 <name>` for `bunyip-api-v0.1.1-x86_64-linux-musl.tar.gz`, `bunyip-web-v0.1.1-static.tar.gz`, and `SHA256SUMS` on the v0.1.1 release at `psa-systems/bunyip` to remove the misplaced attachments. (No code action required - happy to do this in the next step if you want.) ## Test plan - [ ] Merge. - [ ] `fj actions dispatch create-release.yml main` to re-run against current Cargo.toml (still v0.1.1). - [ ] Confirm tag-and-release skips (tag + release exist). - [ ] Confirm binaries job runs and `https://dev.a8n.run/psa-systems-private/-/packages` lists a `bunyip` generic package at `v0.1.1` with the three files. - [ ] Re-dispatch; confirm `409`-on-retry path logs "already exists; skipping" instead of failing. Refs: BUNYIP-25
fix(release): publish binaries to psa-systems-private Generic Packages
All checks were successful
build / Build and push OCI images (pull_request) Has been skipped
build / Lint and type-check (pull_request) Successful in 17s
637974e56d
BUNYIP-25's initial implementation attached release artifacts to the Forgejo release object at psa-systems/bunyip. The intended destination per the just create-release recipe and the rest of the project conventions is the psa-systems-private/bunyip Generic Packages registry - same org that hosts the OCI images.

Swap the upload step from POST /releases/{id}/assets to PUT /api/packages/psa-systems-private/generic/bunyip/{tag}/{file}. Idempotency switches from per-asset name lookup to interpreting the HTTP status: 201 = uploaded, 409 = already exists at that name+version (treated as success), anything else = real error.

README and milestone-1-handoff updated to point at the new location and document the auth requirement for downloads (read:package scoped token, same kind already needed for docker login dev.a8n.run).
nrupard deleted branch fix/release-binaries-to-generic-packages 2026-05-28 20:46:36 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
psa-systems/bunyip!12
No description provided.