From 3ed0becb9871ec9dcff79ab9dc433044f2f6dfaa Mon Sep 17 00:00:00 2001 From: Daniel Klevebring Date: Mon, 6 Apr 2026 15:06:05 +0200 Subject: [PATCH] fix: mark pre-release versions as such in GitHub releases The release workflow was hardcoding releaseType=release for all versions. This caused pre-release versions (e.g. 2.10.1-beta.1) to update latest.yml on GitHub, making electron-updater offer them to stable users (even though allowPrerelease defaults to false). Fix: detect semver pre-release identifiers (e.g. 2.10.1-beta.1 vs 2.10.1) and set releaseType=prerelease accordingly. electron-builder will then mark those GitHub releases as pre-releases, and electron-updater will correctly skip them for stable users. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/release.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d94685c..4f0162a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -35,6 +35,14 @@ jobs: npm version ${{ github.event.inputs.version }} --no-git-tag-version --allow-same-version VERSION=$(node -p "require('./package.json').version") echo "version=$VERSION" >> "$GITHUB_OUTPUT" + # A version with a pre-release identifier (e.g. 2.1.0-beta.1) should be + # published as a GitHub pre-release so electron-updater skips it for + # stable users (allowPrerelease defaults to false). + if [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "release_type=release" >> "$GITHUB_OUTPUT" + else + echo "release_type=prerelease" >> "$GITHUB_OUTPUT" + fi - name: Commit version bump run: | @@ -66,7 +74,7 @@ jobs: APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: npx electron-builder --mac --arm64 --publish always + run: npx electron-builder --mac --arm64 --publish always --config.publish.releaseType=${{ steps.version.outputs.release_type }} - name: Add release notes env: