Skip to content

ci: retry a failed registry release by hand - #32

Merged
danielmlr merged 1 commit into
mainfrom
ci/registry-retry
Oct 6, 2026
Merged

danielmlr merged 1 commit into
mainfrom
ci/registry-retry

Conversation

@danielmlr

Copy link
Copy Markdown
Member

Lets a failed registry release be retried by hand without publishing a new npm version and without replacing the registry's workflow connection.

A failed registry release cannot be re-run. The release service keys uploaded artifacts by workflow run ID, so a rerun's new attestation conflicts with the first attempt's: rerunning the 0.3.1 publish job failed with INVALID_REQUEST: Artifact upload is invalid (run 37486660259, attempt 2). Starting emdash-release.yml by hand gets a new run, but the registry keeps one workflow connection per package, so approving one for emdash-release.yml replaces the connection for release.yml, and the next normal release would ask for approval again.

Changes

  • release.yml also runs on workflow_dispatch. Started by hand on main, it skips the Changesets and npm jobs and calls emdash-release.yml with the name and version from package.json, in the same published-packages format Changesets produces. The run still comes from release.yml on refs/heads/main, so it matches the existing connection.
  • Push runs are unchanged.
  • AGENTS.md says how to retry, and not to start emdash-release.yml by hand.

No changeset: the package does not change.

Verified

  • The workflow parses; on push the jobs are unchanged, on workflow_dispatch only registry-retry-version and registry-retry run.
  • jq -c '[{name, version}]' package.json gives [{"name":"@eisbachcode/emdash-plugin-analytics","version":"0.3.1"}], the same string the 0.3.1 run passed to release plan.
  • Not yet run on GitHub: the first manual run after merge is the test. That the event type does not affect the connection match is read from the release service's code (workflowConnectionPolicyMatches compares repository, IDs, workflow file, refs and environments), not observed.

A failed registry release cannot be re-run: the release service keys
uploaded artifacts by workflow run ID, so a rerun's new attestation
conflicts with the first attempt's (INVALID_REQUEST: Artifact upload is
invalid, run 37486660259 attempt 2).

Starting emdash-release.yml by hand would work, but the registry keeps
one workflow connection per package, and approving one for
emdash-release.yml replaces the connection for release.yml, so the next
normal release would need another approval.

release.yml now also runs on workflow_dispatch. On main it skips npm and
calls emdash-release.yml with the version from package.json, so the run
still comes from release.yml on refs/heads/main and matches the existing
connection. No changeset: the package does not change.
@changeset-bot

changeset-bot Bot commented Oct 6, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: ba2355f

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@danielmlr
danielmlr merged commit f688975 into main Oct 6, 2026
3 checks passed
@danielmlr
danielmlr deleted the ci/registry-retry branch October 6, 2026 20:42
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