feat(electron): separate dev/uat build targets with isolated update channels
- Add build.dev.json to override publish.url for dev environment
- Add build:dev and build:uat scripts; each sets its own feed URL
- copy-to-nas.js now accepts env argument; outputs to
electron-update/{dev|uat}/ locally and on NAS
- docker-compose volume mounts updated to serve from env subdirs
- Remove stale artifacts from electron-update root
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -7,7 +7,7 @@ services:
|
||||
ports:
|
||||
- "7033:80"
|
||||
volumes:
|
||||
- ./electron-update:/usr/share/nginx/html/electron-update
|
||||
- ./electron-update/dev:/usr/share/nginx/html/electron-update
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
restart: unless-stopped
|
||||
|
||||
@@ -60,7 +60,7 @@ services:
|
||||
ports:
|
||||
- "7034:80"
|
||||
volumes:
|
||||
- ./electron-update:/usr/share/nginx/html/electron-update
|
||||
- ./electron-update/uat:/usr/share/nginx/html/electron-update
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
restart: unless-stopped
|
||||
|
||||
+10
-4
@@ -1,14 +1,18 @@
|
||||
{
|
||||
"name": "gamegroup-electron",
|
||||
"version": "0.3.2",
|
||||
"version": "0.3.3",
|
||||
"description": "Game Group V2 桌面客户端",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
"start": "electron .",
|
||||
"start:dev": "electron . --env=dev",
|
||||
"start:uat": "electron . --env=uat",
|
||||
"build": "electron-builder --win && node scripts/copy-to-nas.js",
|
||||
"build:portable": "electron-builder --win portable && node scripts/copy-to-nas.js",
|
||||
"bump": "node scripts/bump-version.js",
|
||||
"bump:minor": "node scripts/bump-version.js minor",
|
||||
"bump:major": "node scripts/bump-version.js major",
|
||||
"build:dev": "node scripts/bump-version.js && electron-builder --win --config scripts/build.dev.json && node scripts/copy-to-nas.js dev",
|
||||
"build:uat": "node scripts/bump-version.js && electron-builder --win && node scripts/copy-to-nas.js uat",
|
||||
"build:portable": "node scripts/bump-version.js && electron-builder --win portable && node scripts/copy-to-nas.js uat",
|
||||
"copy-to-nas": "node scripts/copy-to-nas.js"
|
||||
},
|
||||
"dependencies": {
|
||||
@@ -31,7 +35,9 @@
|
||||
"target": [
|
||||
{
|
||||
"target": "nsis",
|
||||
"arch": ["x64"]
|
||||
"arch": [
|
||||
"x64"
|
||||
]
|
||||
}
|
||||
],
|
||||
"icon": "build/icon.ico"
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"publish": {
|
||||
"provider": "generic",
|
||||
"url": "http://192.168.1.14:7033/electron-update/",
|
||||
"channel": "latest"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
||||
const type = process.argv[2] || 'patch' // patch | minor | major
|
||||
const pkgPath = path.join(__dirname, '..', 'package.json')
|
||||
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'))
|
||||
|
||||
let [major, minor, patch] = pkg.version.split('.').map(Number)
|
||||
|
||||
switch (type) {
|
||||
case 'major':
|
||||
major++
|
||||
minor = 0
|
||||
patch = 0
|
||||
break
|
||||
case 'minor':
|
||||
minor++
|
||||
patch = 0
|
||||
break
|
||||
case 'patch':
|
||||
default:
|
||||
patch++
|
||||
break
|
||||
}
|
||||
|
||||
pkg.version = `${major}.${minor}.${patch}`
|
||||
fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n')
|
||||
console.log(`[bump-version] ${type} -> ${pkg.version}`)
|
||||
@@ -1,11 +1,12 @@
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
||||
const env = process.argv[2] || 'uat'
|
||||
const srcDir = path.join(__dirname, '..', 'dist')
|
||||
// 项目根目录下的 electron-update,用于 docker volume 挂载给 nginx
|
||||
const localUpdateDir = path.join(__dirname, '..', '..', 'electron-update')
|
||||
// 项目根目录下的 electron-update/{env},用于 docker volume 挂载给 nginx
|
||||
const localUpdateDir = path.join(__dirname, '..', '..', 'electron-update', env)
|
||||
// NAS 共享路径
|
||||
const nasDir = '\\\\JIULUGNAS\\personal_folder\\CodeSpace\\GameGroup2\\electron-update'
|
||||
const nasDir = path.join('\\\\JIULUGNAS\\personal_folder\\CodeSpace\\GameGroup2\\electron-update', env)
|
||||
|
||||
function ensureDir(dir) {
|
||||
try {
|
||||
@@ -26,7 +27,6 @@ function copyFilesTo(destDir, label) {
|
||||
}
|
||||
|
||||
const files = fs.readdirSync(srcDir).filter((f) => {
|
||||
// 只复制更新相关文件:安装包、yml、blockmap、nupkg
|
||||
const ext = path.extname(f).toLowerCase()
|
||||
return (
|
||||
ext === '.exe' ||
|
||||
|
||||
Reference in New Issue
Block a user