Electron CI Build + Version Info Modal
CI Pipeline: - New electron-build stage (electronuserland/builder:wine) builds Windows installer - New electron-deploy stage copies artifacts to container /data/downloads/ - Triggers on electron/ or VERSION changes + manual trigger - bump-version now syncs electron/package.json via jq Version Modal: - Click version badge to open info modal - Shows Hub Version, Desktop App Version, Server status - Hint when versions differ (update available) - Download link when not using Electron app - Escape + overlay click to close Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
76a2487d70
commit
0ef2a2899a
3 changed files with 242 additions and 3 deletions
|
|
@ -67,6 +67,35 @@ docker-build:
|
|||
--insecure-registry=$INTERNAL_REGISTRY \
|
||||
$DESTINATIONS
|
||||
|
||||
electron-build:
|
||||
stage: build
|
||||
image: electronuserland/builder:wine
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == "main"
|
||||
changes:
|
||||
- electron/**/*
|
||||
- VERSION
|
||||
- if: $CI_COMMIT_BRANCH == "main"
|
||||
when: manual
|
||||
allow_failure: true
|
||||
script:
|
||||
- |
|
||||
VERSION=$(cat VERSION 2>/dev/null || echo "0.0.0")
|
||||
echo "[Electron] Building v${VERSION} for Windows..."
|
||||
|
||||
cd electron
|
||||
node -e "
|
||||
const pkg = require('./package.json');
|
||||
pkg.version = '${VERSION}';
|
||||
require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
|
||||
"
|
||||
npm ci --no-audit --no-fund
|
||||
npx electron-forge make --platform win32 --arch x64
|
||||
artifacts:
|
||||
paths:
|
||||
- electron/out/make/squirrel.windows/x64/
|
||||
expire_in: 1 hour
|
||||
|
||||
deploy:
|
||||
stage: deploy
|
||||
image: docker:latest
|
||||
|
|
@ -106,6 +135,48 @@ deploy:
|
|||
"$DEPLOY_IMAGE"
|
||||
- docker ps --filter name="$CONTAINER_NAME" --format "ID={{.ID}} Status={{.Status}} Image={{.Image}}"
|
||||
|
||||
electron-deploy:
|
||||
stage: deploy
|
||||
image: docker:latest
|
||||
needs: [electron-build, deploy]
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == "main"
|
||||
changes:
|
||||
- electron/**/*
|
||||
- VERSION
|
||||
- if: $CI_COMMIT_BRANCH == "main"
|
||||
when: manual
|
||||
allow_failure: true
|
||||
variables:
|
||||
CONTAINER_NAME: "gaming-hub"
|
||||
script:
|
||||
- |
|
||||
VERSION=$(cat VERSION 2>/dev/null || echo "0.0.0")
|
||||
SRC_DIR="electron/out/make/squirrel.windows/x64"
|
||||
|
||||
echo "[Electron Deploy] Deploying v${VERSION} artifacts..."
|
||||
|
||||
# Ensure downloads directory exists in container
|
||||
docker exec "$CONTAINER_NAME" mkdir -p /data/downloads
|
||||
|
||||
# Copy RELEASES metadata
|
||||
docker cp "${SRC_DIR}/RELEASES" "${CONTAINER_NAME}:/data/downloads/RELEASES"
|
||||
|
||||
# Copy nupkg (for Squirrel auto-update)
|
||||
for f in ${SRC_DIR}/*.nupkg; do
|
||||
docker cp "$f" "${CONTAINER_NAME}:/data/downloads/$(basename "$f")"
|
||||
done
|
||||
|
||||
# Copy Setup.exe with stable name for download button
|
||||
SETUP_EXE=$(ls ${SRC_DIR}/*Setup*.exe 2>/dev/null | head -1)
|
||||
if [ -n "$SETUP_EXE" ]; then
|
||||
docker cp "$SETUP_EXE" "${CONTAINER_NAME}:/data/downloads/GamingHub-Setup.exe"
|
||||
echo "[Electron Deploy] Setup.exe deployed: $(basename "$SETUP_EXE")"
|
||||
fi
|
||||
|
||||
echo "[Electron Deploy] Files in /data/downloads/:"
|
||||
docker exec "$CONTAINER_NAME" ls -lh /data/downloads/
|
||||
|
||||
bump-version:
|
||||
stage: bump-version
|
||||
image:
|
||||
|
|
@ -115,6 +186,7 @@ bump-version:
|
|||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == "main" && $CI_COMMIT_TITLE !~ /\[skip ci\]/
|
||||
script:
|
||||
- apk add --no-cache jq
|
||||
- |
|
||||
git config user.name "GitLab CI"
|
||||
git config user.email "ci@adriahub.de"
|
||||
|
|
@ -131,8 +203,13 @@ bump-version:
|
|||
NEXT_VERSION="${MAJOR}.${MINOR}.${NEXT_PATCH}"
|
||||
|
||||
echo "$NEXT_VERSION" > VERSION
|
||||
echo "Bumped version: $VERSION -> $NEXT_VERSION"
|
||||
|
||||
git add VERSION
|
||||
# Sync electron/package.json version
|
||||
jq --arg v "$NEXT_VERSION" '.version = $v' electron/package.json > electron/package.json.tmp
|
||||
mv electron/package.json.tmp electron/package.json
|
||||
|
||||
echo "Bumped version: $VERSION -> $NEXT_VERSION (VERSION + electron/package.json)"
|
||||
|
||||
git add VERSION electron/package.json
|
||||
git commit -m "v${NEXT_VERSION} [skip ci]"
|
||||
git push origin main
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue