From 8839edb34ab5b4e21bf2c0666457e4361987df5a Mon Sep 17 00:00:00 2001 From: Fritz Date: Wed, 27 May 2026 12:23:21 +1000 Subject: [PATCH] fix: use extraMetadata.version for 4-part display, semver for electron-builder --- .github/workflows/ci.yml | 25 ++++++++++++++++--------- package.json | 5 ++++- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 03be1b7..11cbcd0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,16 +46,19 @@ jobs: cache: 'npm' # ── Version bump (push events only, not PRs, not main/uat) ──────────────── - # Format: MAJOR.ALPHA.BETA.BUILD - # develop → increment BUILD (4th digit) - # alpha → increment ALPHA (2nd digit), reset BUILD to 0 - # beta → increment BETA (3rd digit), reset BUILD to 0 + # Display version format: MAJOR.ALPHA.BETA.BUILD (stored in build.extraMetadata.version) + # Semver format: MAJOR.ALPHA.BETA (stored in version — required by electron-builder) + # + # develop → increment BUILD (4th digit of extraMetadata.version only) + # alpha → increment ALPHA (2nd digit), reset BUILD to 0, sync 3-part version + # beta → increment BETA (3rd digit), reset BUILD to 0, sync 3-part version - name: Bump version id: bump if: github.event_name == 'push' && github.ref_name != 'main' && github.ref_name != 'uat' run: | - VERSION=$(node -p "require('./package.json').version") - IFS='.' read -r MAJOR ALPHA BETA BUILD <<< "$VERSION" + # Read the 4-part display version from extraMetadata + EXT_VERSION=$(node -p "require('./package.json').build.extraMetadata.version") + IFS='.' read -r MAJOR ALPHA BETA BUILD <<< "$EXT_VERSION" case "${{ github.ref_name }}" in develop) @@ -71,15 +74,19 @@ jobs: ;; esac - NEW_VERSION="${MAJOR}.${ALPHA}.${BETA}.${BUILD}" + NEW_EXT_VERSION="${MAJOR}.${ALPHA}.${BETA}.${BUILD}" + # 3-part semver for electron-builder (strips the BUILD digit) + NEW_VERSION="${MAJOR}.${ALPHA}.${BETA}" + node -e " const fs = require('fs'); const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8')); pkg.version = '${NEW_VERSION}'; + pkg.build.extraMetadata.version = '${NEW_EXT_VERSION}'; fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n'); " - echo "new-version=${NEW_VERSION}" >> "$GITHUB_OUTPUT" - echo "Bumped to: ${NEW_VERSION}" + echo "new-version=${NEW_EXT_VERSION}" >> "$GITHUB_OUTPUT" + echo "Bumped to: ${NEW_EXT_VERSION} (semver: ${NEW_VERSION})" - name: Install dependencies run: npm ci diff --git a/package.json b/package.json index 9593956..1f763d3 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "email": "fritz.blignaut@gmail.com" }, "private": true, - "version": "1.0.0.1", + "version": "1.0.0", "type": "module", "main": "electron/main.cjs", "scripts": { @@ -25,6 +25,9 @@ "build": { "appId": "com.techstack.streamdeck", "productName": "Tech Stack Stream Deck", + "extraMetadata": { + "version": "1.0.0.0" + }, "directories": { "output": "dist-electron" },