diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index eec8c19b..b2862e97 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -66,3 +66,21 @@ jobs: dist/*.tar.gz dist/*.yml dist/*.blockmap + + - name: Release + uses: softprops/action-gh-release@v1 + with: + draft: true + files: | + dist/*.exe + dist/*.zip + dist/*.dmg + dist/*.AppImage + dist/*.snap + dist/*.deb + dist/*.rpm + dist/*.tar.gz + dist/*.yml + dist/*.blockmap + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/electron-builder.yml b/electron-builder.yml index 06f6a5c5..2c343624 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -46,5 +46,7 @@ appImage: npmRebuild: false publish: provider: github + owner: hydralauncher + repo: hydra electronDownload: mirror: https://npmmirror.com/mirrors/electron/ diff --git a/package.json b/package.json index b026d84f..c0adccfb 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "color.js": "^1.2.0", "date-fns": "^3.6.0", "easydl": "^1.1.1", + "electron-updater": "^6.1.8", "fetch-cookie": "^3.0.1", "flexsearch": "^0.7.43", "i18next": "^23.11.2", diff --git a/src/main/data-source.ts b/src/main/data-source.ts index 54ff97ce..11725a20 100644 --- a/src/main/data-source.ts +++ b/src/main/data-source.ts @@ -15,9 +15,8 @@ export const createDataSource = (options: Partial) => type: "better-sqlite3", database: databasePath, entities: [Game, Repack, UserPreferences, GameShopCache, SteamGame], + synchronize: true, ...options, }); -export const dataSource = createDataSource({ - synchronize: true, -}); +export const dataSource = createDataSource({}); diff --git a/src/main/index.ts b/src/main/index.ts index 2b993a61..c6738960 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -1,4 +1,5 @@ import { app, BrowserWindow, net, protocol } from "electron"; +import updater from "electron-updater"; import i18n from "i18next"; import path from "node:path"; import { electronApp, optimizer } from "@electron-toolkit/utils"; @@ -7,6 +8,14 @@ import { dataSource } from "@main/data-source"; import * as resources from "@locales"; import { userPreferencesRepository } from "@main/repository"; +const { autoUpdater } = updater; + +autoUpdater.setFeedURL({ + provider: "github", + owner: "hydralauncher", + repo: "hydra", +}); + const gotTheLock = app.requestSingleInstanceLock(); if (!gotTheLock) app.quit(); @@ -52,6 +61,10 @@ app.whenReady().then(() => { WindowManager.createMainWindow(); WindowManager.createSystemTray(userPreferences?.language || "en"); + + WindowManager.mainWindow?.on("ready-to-show", () => { + autoUpdater.checkForUpdatesAndNotify(); + }); }); });