Skip to content

ci: gate the Aminet upload behind manual approval - #19

Merged
sidick merged 1 commit into
mainfrom
gated-aminet-release
Jul 29, 2026
Merged

ci: gate the Aminet upload behind manual approval#19
sidick merged 1 commit into
mainfrom
gated-aminet-release

Conversation

@sidick

@sidick sidick commented Jul 29, 2026

Copy link
Copy Markdown
Owner

Summary

Brings the release process in line with amiauth's, most importantly the approval-gated Aminet upload:

  • release.yml → two jobs. The release job runs automatically on tag push: verifies the tag against version.mk, the readme's Version: line, and the $VER: strings inside the built narrator.device / translator.library; rebuilds the archive in CI; validates the readme (validate-only: true — no upload); creates the GitHub Release with versioned copies; and stashes the unversioned lha + readme as a workflow artifact.
  • New aminet job runs in the aminet environment (required reviewer, already created on this repo), so it pauses until approved on the Actions run page, then FTPs the artifact to Aminet. No rebuild at approval time — a days-later rebuild would stamp a different $VER date than the release assets. No GITHUB_TOKEN is passed, so the action skips attach-to-release and doesn't duplicate the versioned assets.
  • aminet-upload.yml — comment-only update: it's now the retry path for lapsed approvals (pending deployments expire after 30 days) or failed uploads.
  • CLAUDE.md — the versioning section's "Aminet upload is still manual" note was already stale; now describes the gated flow.

Test plan

  • actionlint clean on both workflows
  • make -s version prints 44.0 (feeds the new tag-verification step)
  • aminet environment exists with required reviewer configured
  • Real verification happens on the next make release + git push --follow-tags (v44.0)

🤖 Generated with Claude Code

Restructure release.yml following amiauth's release process: the
`release` job verifies tag/version.mk/readme/$VER agreement, rebuilds
and validates the archive (validate-only, no upload), creates the
GitHub Release, and stashes the unversioned pair as an artifact; a new
`aminet` job in the approval-gated `aminet` environment (required
reviewer) then FTPs the package to Aminet only after explicit approval
in the Actions UI. aminet-upload.yml becomes the retry path for lapsed
approvals or failed uploads; CLAUDE.md's stale "Aminet upload is still
manual" note updated to describe the gated flow.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@sidick
sidick enabled auto-merge (squash) July 29, 2026 08:26
@sidick
sidick merged commit e562280 into main Jul 29, 2026
3 checks passed
@sidick
sidick deleted the gated-aminet-release branch July 29, 2026 08:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant