diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index ffe9dc9..59750f6 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -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 diff --git a/docker-compose.uat.yml b/docker-compose.uat.yml index 4b85ecb..b14a0a4 100644 --- a/docker-compose.uat.yml +++ b/docker-compose.uat.yml @@ -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 diff --git a/electron/package.json b/electron/package.json index 165252d..bd92e8b 100644 --- a/electron/package.json +++ b/electron/package.json @@ -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" diff --git a/electron/scripts/build.dev.json b/electron/scripts/build.dev.json new file mode 100644 index 0000000..9b86a29 --- /dev/null +++ b/electron/scripts/build.dev.json @@ -0,0 +1,7 @@ +{ + "publish": { + "provider": "generic", + "url": "http://192.168.1.14:7033/electron-update/", + "channel": "latest" + } +} diff --git a/electron/scripts/bump-version.js b/electron/scripts/bump-version.js new file mode 100644 index 0000000..1a5f23a --- /dev/null +++ b/electron/scripts/bump-version.js @@ -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}`) diff --git a/electron/scripts/copy-to-nas.js b/electron/scripts/copy-to-nas.js index 39545c9..1a98408 100644 --- a/electron/scripts/copy-to-nas.js +++ b/electron/scripts/copy-to-nas.js @@ -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' ||