diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bfe2b88..815b7a3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -22,8 +22,14 @@ jobs: run: | VERSION=$(echo "$TAG_NAME" | sed 's/^v//') PACKAGE=$(node -p "require('./package.json').name") - npm dist-tag add "$PACKAGE@$VERSION" latest - echo "::notice title=Promoted $VERSION to latest::The latest tag now points to $VERSION (was edge-only)" + + # Check if this version exists on npm (i.e., it's a promotion of an existing prerelease) + if npm view "$PACKAGE@$VERSION" version &>/dev/null; then + npm dist-tag add "$PACKAGE@$VERSION" latest + echo "::notice title=Promoted $VERSION to latest::The latest tag now points to $VERSION (was edge-only)" + else + echo "::notice title=Skipped promotion::Version $VERSION does not exist on npm yet (fresh release, not a promotion)" + fi env: TAG_NAME: ${{ github.event.release.tag_name }} NODE_AUTH_TOKEN: ${{secrets.NPM_DEPLOY_TOKEN}}