diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7346227e..d0c70f8f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -258,11 +258,13 @@ jobs: mkdir -p release-assets find artifacts -maxdepth 1 -type f \ \( -name '*.AppImage' \ + -o -name '*.blockmap' \ -o -name '*.deb' \ -o -name '*.dmg' \ -o -name '*.exe' \ -o -name '*.rpm' \ -o -name '*.tar.gz' \ + -o -name '*.yml' \ -o -name '*.zip' \) \ -exec cp {} release-assets/ \; find release-assets -maxdepth 1 -type f -print | sort diff --git a/apps/desktop/electron-builder.yml b/apps/desktop/electron-builder.yml index 5d9b9e80..b0ba2900 100644 --- a/apps/desktop/electron-builder.yml +++ b/apps/desktop/electron-builder.yml @@ -82,4 +82,6 @@ nsis: publish: provider: github + owner: 7df-lab + repo: devo releaseType: draft diff --git a/apps/desktop/package.json b/apps/desktop/package.json index c38984ee..d7d06d2c 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -1,14 +1,14 @@ { "name": "@devo/desktop", "productName": "Devo", - "version": "0.1.22", + "version": "0.1.23", "description": "AI-powered coding assistant desktop app", "author": "Devo", "license": "MIT", - "homepage": "https://github.com/tsiao/devo", + "homepage": "https://github.com/7df-lab/devo", "repository": { "type": "git", - "url": "https://github.com/tsiao/devo.git", + "url": "https://github.com/7df-lab/devo.git", "directory": "apps/desktop" }, "private": true, diff --git a/apps/desktop/scripts/desktop-package-config.test.ts b/apps/desktop/scripts/desktop-package-config.test.ts index ff669cd3..8bbf4805 100644 --- a/apps/desktop/scripts/desktop-package-config.test.ts +++ b/apps/desktop/scripts/desktop-package-config.test.ts @@ -16,4 +16,32 @@ describe("desktop package runtime resources", () => { excludesPublicCliLauncher: true, }) }) + + test("publishes desktop auto-update metadata to the canonical GitHub repository", () => { + const config = readFileSync(join(desktopDir, "electron-builder.yml"), "utf8") + const packageJson = JSON.parse(readFileSync(join(desktopDir, "package.json"), "utf8")) + const releaseWorkflow = readFileSync( + join(desktopDir, "..", "..", ".github", "workflows", "release.yml"), + "utf8", + ) + const updaterSource = readFileSync(join(desktopDir, "src", "main", "updater.ts"), "utf8") + + expect({ + homepage: packageJson.homepage, + repositoryUrl: packageJson.repository.url, + usesCanonicalOwner: config.includes("owner: 7df-lab"), + usesCanonicalRepo: config.includes("repo: devo"), + usesCanonicalReleasePage: updaterSource.includes("https://github.com/7df-lab/devo"), + publishesBlockmaps: releaseWorkflow.includes("-o -name '*.blockmap'"), + publishesChannelMetadata: releaseWorkflow.includes("-o -name '*.yml'"), + }).toEqual({ + homepage: "https://github.com/7df-lab/devo", + repositoryUrl: "https://github.com/7df-lab/devo.git", + usesCanonicalOwner: true, + usesCanonicalRepo: true, + usesCanonicalReleasePage: true, + publishesBlockmaps: true, + publishesChannelMetadata: true, + }) + }) }) diff --git a/apps/desktop/src/main/updater.ts b/apps/desktop/src/main/updater.ts index 158aec90..b0142015 100644 --- a/apps/desktop/src/main/updater.ts +++ b/apps/desktop/src/main/updater.ts @@ -95,7 +95,7 @@ function setState(next: Partial): void { // GitHub release URL // ============================================================ -const GITHUB_REPO_URL = "https://github.com/tsiao/devo" +const GITHUB_REPO_URL = "https://github.com/7df-lab/devo" /** Build the GitHub release URL for a specific version tag. */ function getReleaseUrl(version?: string): string {