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