diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 460d646..84be0dd 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -2,7 +2,9 @@ name: Release
on:
release:
- types: [published]
+ # `published` covers pre-releases, including ones published from drafts.
+ # `released` covers stable releases and pre-releases switched to stable.
+ types: [published, released]
workflow_dispatch:
inputs:
version:
@@ -28,6 +30,11 @@ concurrency:
jobs:
publish:
+ # A stable release fires both `published` and `released`; publish once.
+ if: >-
+ github.event_name != 'release' ||
+ github.event.action == 'released' ||
+ github.event.release.prerelease
runs-on: ubuntu-latest
environment: Publish
steps:
diff --git a/docs/RELEASING.md b/docs/RELEASING.md
index ce29b7e..9582268 100644
--- a/docs/RELEASING.md
+++ b/docs/RELEASING.md
@@ -61,7 +61,7 @@ The workflow creates a Changesets snapshot version and publishes it under the np
A GitHub prerelease also publishes under `next`. Its tag must match the base version in `packages/nuxt/package.json`; the workflow derives a rerun-safe `-next.` npm version.
-Converting that GitHub prerelease to a stable release does not republish it. After the stable version PR is merged, run `Release` manually with `version=latest` and `branch=main`.
+To promote that prerelease, edit the GitHub release and switch it from pre-release to the latest release. That runs `Release` again and publishes the base version with the npm `latest` dist-tag.
## First `0.1.0` checklist