diff --git a/.github/workflows/auto-build.yml b/.github/workflows/auto-build.yml index 517bffc6..1e05d661 100644 --- a/.github/workflows/auto-build.yml +++ b/.github/workflows/auto-build.yml @@ -26,21 +26,40 @@ jobs: fail-fast: false matrix: include: - - label: windows + - label: windows-x64 os: blacksmith-4vcpu-windows-2025 - builder_args: "--win nsis portable" + builder_args: "--win nsis portable --x64" + artifact_paths: | + opennow-stable/dist-release/*-x64.exe + - label: windows-arm64 + os: blacksmith-4vcpu-windows-2025 + builder_args: "--win nsis portable --arm64" + artifact_paths: | + opennow-stable/dist-release/*-arm64.exe - label: macos-x64 os: macos-latest builder_args: "--mac dmg zip --x64" + artifact_paths: | + opennow-stable/dist-release/*.dmg + opennow-stable/dist-release/*-x64.zip - label: macos-arm64 os: macos-latest builder_args: "--mac dmg zip --arm64" + artifact_paths: | + opennow-stable/dist-release/*.dmg + opennow-stable/dist-release/*-arm64.zip - label: linux-x64 os: blacksmith-4vcpu-ubuntu-2404 builder_args: "--linux AppImage deb --x64" + artifact_paths: | + opennow-stable/dist-release/*-x86_64.AppImage + opennow-stable/dist-release/*-amd64.deb - label: linux-arm64 os: blacksmith-4vcpu-ubuntu-2404-arm builder_args: "--linux AppImage deb --arm64" + artifact_paths: | + opennow-stable/dist-release/*-arm64.AppImage + opennow-stable/dist-release/*-arm64.deb defaults: run: @@ -99,10 +118,5 @@ jobs: uses: actions/upload-artifact@v4 with: name: opennow-stable-${{ matrix.label }} - path: | - opennow-stable/dist-release/*.exe - opennow-stable/dist-release/*.dmg - opennow-stable/dist-release/*.zip - opennow-stable/dist-release/*.AppImage - opennow-stable/dist-release/*.deb + path: ${{ matrix.artifact_paths }} if-no-files-found: error diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1fc7f6ca..acb5d12a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -99,21 +99,44 @@ jobs: fail-fast: false matrix: include: - - label: windows + - label: windows-x64 os: blacksmith-4vcpu-windows-2025 - builder_args: "--win nsis portable" + builder_args: "--win nsis portable --x64" + artifact_paths: | + opennow-stable/dist-release/*-x64.exe + opennow-stable/dist-release/latest*.yml + opennow-stable/dist-release/*.blockmap + - label: windows-arm64 + os: blacksmith-4vcpu-windows-2025 + builder_args: "--win nsis portable --arm64" + artifact_paths: | + opennow-stable/dist-release/*-arm64.exe - label: macos-x64 os: macos-latest builder_args: "--mac dmg zip --x64" + artifact_paths: | + opennow-stable/dist-release/*.dmg + opennow-stable/dist-release/*-x64.zip - label: macos-arm64 os: macos-latest builder_args: "--mac dmg zip --arm64" + artifact_paths: | + opennow-stable/dist-release/*.dmg + opennow-stable/dist-release/*-arm64.zip - label: linux-x64 os: blacksmith-4vcpu-ubuntu-2404 builder_args: "--linux AppImage deb --x64" + artifact_paths: | + opennow-stable/dist-release/*-x86_64.AppImage + opennow-stable/dist-release/*-amd64.deb + opennow-stable/dist-release/latest-linux.yml - label: linux-arm64 os: blacksmith-4vcpu-ubuntu-2404-arm builder_args: "--linux AppImage deb --arm64" + artifact_paths: | + opennow-stable/dist-release/*-arm64.AppImage + opennow-stable/dist-release/*-arm64.deb + opennow-stable/dist-release/latest-linux-arm64.yml defaults: run: @@ -175,14 +198,9 @@ jobs: uses: actions/upload-artifact@v4 with: name: opennow-stable-${{ matrix.label }} - path: | - opennow-stable/dist-release/*.exe - opennow-stable/dist-release/*.dmg - opennow-stable/dist-release/*.zip - opennow-stable/dist-release/*.AppImage - opennow-stable/dist-release/*.deb - opennow-stable/dist-release/latest*.yml - opennow-stable/dist-release/*.blockmap + # electron-updater still consumes a single Windows latest.yml feed. + # Keep that metadata x64-only so ARM64 release assets cannot overwrite it. + path: ${{ matrix.artifact_paths }} if-no-files-found: error release: diff --git a/README.md b/README.md index 235d2389..4a553217 100644 --- a/README.md +++ b/README.md @@ -76,11 +76,14 @@ Current packaging targets: | Platform | Formats | | --- | --- | -| Windows | NSIS installer, portable executable | +| Windows x64 | NSIS installer, portable executable, auto-update metadata | +| Windows ARM64 | NSIS installer, portable executable | | macOS | `dmg`, `zip` | | Linux x64 | `AppImage`, `deb` | | Linux ARM64 | `AppImage`, `deb` | +Windows ARM64 builds are published as release downloads. The Windows auto-update feed remains `latest.yml` for x64 releases, so ARM64 packages do not participate in in-app auto-update yet. + ### Develop Locally From the repository root: diff --git a/docs/development.md b/docs/development.md index c2170597..d5cf76b6 100644 --- a/docs/development.md +++ b/docs/development.md @@ -149,12 +149,15 @@ Current build matrix: | Target | Output | | --- | --- | -| Windows | NSIS installer, portable executable | +| Windows x64 | NSIS installer, portable executable, `latest.yml`, `.blockmap` | +| Windows ARM64 | NSIS installer, portable executable | | macOS x64 | `dmg`, `zip` | | macOS arm64 | `dmg`, `zip` | | Linux x64 | `AppImage`, `deb` | | Linux ARM64 | `AppImage`, `deb` | +Windows ARM64 artifacts are release downloads only for now. The Windows auto-update channel remains the x64 `latest.yml` feed so ARM64 packaging cannot overwrite updater metadata. + ## Notes For Contributors - The active app is the Electron client. If you see older references to previous implementations, prefer `opennow-stable/`. diff --git a/opennow-stable/README.md b/opennow-stable/README.md index 34df9059..c543d24e 100644 --- a/opennow-stable/README.md +++ b/opennow-stable/README.md @@ -25,11 +25,14 @@ npm run dist | Platform | Formats | | --- | --- | -| Windows | NSIS installer, portable executable | +| Windows x64 | NSIS installer, portable executable, auto-update metadata | +| Windows ARM64 | NSIS installer, portable executable | | macOS | `dmg`, `zip` | | Linux x64 | `AppImage`, `deb` | | Linux ARM64 | `AppImage`, `deb` | +Windows ARM64 packages are published as release downloads only. The current Windows updater channel stays on the x64 `latest.yml` feed. + ## Technical Notes - WebRTC relies on Chromium's built-in stack