diff --git a/apps/electron/scripts/generate-yml.js b/apps/electron/scripts/generate-yml.js index 13bdb70aa6..320512eb8e 100644 --- a/apps/electron/scripts/generate-yml.js +++ b/apps/electron/scripts/generate-yml.js @@ -3,6 +3,7 @@ const fs = require('fs'); const path = require('path'); const crypto = require('crypto'); +const glob = require('glob'); /* eslint-enable */ const yml = { @@ -10,18 +11,10 @@ const yml = { files: [], }; -let fileList = []; -// TODO: maybe add `beta` and `stable` -const BUILD_TYPE = process.env.BUILD_TYPE || 'canary'; +const generateYml = async platform => { + const files = glob.sync(`./affine-*-${platform}-*.{exe,zip,dmg,AppImage}`); -const generateYml = async () => { - fileList = [ - `affine-${BUILD_TYPE}-macos-arm64.dmg`, - `affine-${BUILD_TYPE}-macos-arm64.zip`, - `affine-${BUILD_TYPE}-macos-x64.zip`, - `affine-${BUILD_TYPE}-macos-x64.dmg`, - ]; - fileList.forEach(fileName => { + files.forEach(fileName => { const filePath = path.join(__dirname, './', fileName); try { const fileData = fs.readFileSync(filePath); @@ -58,6 +51,9 @@ const generateYml = async () => { `sha512: ${yml.sha512}\n` + `releaseDate: ${yml.releaseDate}\n`; - fs.writeFileSync(`./latest-mac.yml`, ymlStr); + const fileName = platform === 'windows' ? 'latest.yml' : 'latest-mac.yml'; + + fs.writeFileSync(fileName, ymlStr); }; -generateYml(); +generateYml('windows'); +generateYml('macos'); diff --git a/apps/electron/scripts/make-squirrel.mts b/apps/electron/scripts/make-squirrel.mts index bc2d9e4370..ae5123000a 100644 --- a/apps/electron/scripts/make-squirrel.mts +++ b/apps/electron/scripts/make-squirrel.mts @@ -7,6 +7,7 @@ import { arch, buildType, iconUrl, + icoPath, platform, productName, ROOT, @@ -45,6 +46,7 @@ async function make() { appDirectory: appDirectory, outputDirectory: outPath, iconUrl: iconUrl, + setupIcon: icoPath, loadingGif: path.resolve(ROOT, './resources/icons/affine_installing.gif'), }; diff --git a/apps/electron/src/main/updater/electron-updater.ts b/apps/electron/src/main/updater/electron-updater.ts index 56f8249523..a764cf8e01 100644 --- a/apps/electron/src/main/updater/electron-updater.ts +++ b/apps/electron/src/main/updater/electron-updater.ts @@ -2,7 +2,7 @@ import { app } from 'electron'; import { autoUpdater } from 'electron-updater'; import { z } from 'zod'; -import { isMacOS } from '../../shared/utils'; +import { isMacOS, isWindows } from '../../shared/utils'; import { logger } from '../logger'; import { updaterSubjects } from './event'; @@ -40,8 +40,8 @@ export const registerUpdater = async () => { return; } - // TODO: support auto update on windows and linux - const allowAutoUpdate = isMacOS(); + // TODO: support auto update on linux + const allowAutoUpdate = isMacOS() || isWindows(); autoUpdater.logger = logger; autoUpdater.autoDownload = false;