Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 16 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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
Expand Down
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand All @@ -25,6 +25,9 @@
"build": {
"appId": "com.techstack.streamdeck",
"productName": "Tech Stack Stream Deck",
"extraMetadata": {
"version": "1.0.0.0"
},
"directories": {
"output": "dist-electron"
},
Expand Down