From fb170bb7c4eeeb114d51f97e81d505366388230a Mon Sep 17 00:00:00 2001 From: Ahmed ElSayed Date: Sat, 7 Feb 2026 15:39:57 -0800 Subject: [PATCH] Add win-arm64 target (#1665) --- .github/workflows/publish-alpha.yml | 11 +++++++++++ .github/workflows/publish-beta.yml | 13 +++++++++++++ .github/workflows/publish-pr.yml | 10 ++++++++++ .github/workflows/publish-windows.yml | 12 ++++++++++++ .github/workflows/publish-winget.yml | 3 +-- .github/workflows/publish.yml | 13 +++++++++++++ package.json | 4 ++++ 7 files changed, 64 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-alpha.yml b/.github/workflows/publish-alpha.yml index 96b93aa3a..fab1bb335 100644 --- a/.github/workflows/publish-alpha.yml +++ b/.github/workflows/publish-alpha.yml @@ -155,6 +155,17 @@ jobs: pnpm run publish:win:alpha on_retry_command: pnpm cache delete + - name: Build and Publish to R2 (Windows ARM64) + if: matrix.os == 'windows-latest' + uses: nick-invision/retry@v2.8.2 + with: + timeout_minutes: 30 + max_attempts: 3 + retry_on: error + command: | + pnpm run publish:win-arm64:alpha + on_retry_command: pnpm cache delete + - name: Build and Publish to R2 (macOS) if: matrix.os == 'macos-latest' uses: nick-invision/retry@v2.8.2 diff --git a/.github/workflows/publish-beta.yml b/.github/workflows/publish-beta.yml index 3bcf1ac97..430acfb49 100644 --- a/.github/workflows/publish-beta.yml +++ b/.github/workflows/publish-beta.yml @@ -155,6 +155,19 @@ jobs: pnpm run publish:win:beta on_retry_command: pnpm cache delete + - name: Build and Publish releases (Windows ARM64) + if: matrix.os == 'windows-latest' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + uses: nick-invision/retry@v2.8.2 + with: + timeout_minutes: 30 + max_attempts: 3 + retry_on: error + command: | + pnpm run publish:win-arm64:beta + on_retry_command: pnpm cache delete + - name: Build and Publish releases (macOS) if: matrix.os == 'macos-latest' env: diff --git a/.github/workflows/publish-pr.yml b/.github/workflows/publish-pr.yml index 4f5389f74..2661a6e52 100644 --- a/.github/workflows/publish-pr.yml +++ b/.github/workflows/publish-pr.yml @@ -50,6 +50,16 @@ jobs: command: | pnpm run package:win:pr + - name: Build for Windows (ARM64) + if: ${{ matrix.os == 'windows-latest' }} + uses: nick-invision/retry@v2.8.2 + with: + timeout_minutes: 30 + max_attempts: 3 + retry_on: error + command: | + pnpm run package:win-arm64:pr + - name: Build for Linux if: ${{ matrix.os == 'ubuntu-latest' }} uses: nick-invision/retry@v2.8.2 diff --git a/.github/workflows/publish-windows.yml b/.github/workflows/publish-windows.yml index 8c23d86e6..437112c9d 100644 --- a/.github/workflows/publish-windows.yml +++ b/.github/workflows/publish-windows.yml @@ -33,3 +33,15 @@ jobs: command: | pnpm run publish:win on_retry_command: pnpm cache delete + + - name: Build and Publish releases (ARM64) + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + uses: nick-invision/retry@v2.8.2 + with: + timeout_minutes: 30 + max_attempts: 3 + retry_on: error + command: | + pnpm run publish:win-arm64 + on_retry_command: pnpm cache delete diff --git a/.github/workflows/publish-winget.yml b/.github/workflows/publish-winget.yml index 6747a566a..f501e9c39 100644 --- a/.github/workflows/publish-winget.yml +++ b/.github/workflows/publish-winget.yml @@ -16,6 +16,5 @@ jobs: - uses: vedantmgoyal9/winget-releaser@main with: identifier: jeffvli.Feishin - installers-regex: 'Feishin-*-win-x64\.exe' + installers-regex: 'Feishin-*-win-(x64|arm64)\.exe' token: ${{ secrets.WINGET_ACC_TOKEN }} - diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 7abf4572b..7e9bc86ed 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -35,6 +35,19 @@ jobs: pnpm run publish:win on_retry_command: pnpm cache delete + - name: Build and Publish releases (Windows ARM64) + if: matrix.os == 'windows-latest' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + uses: nick-invision/retry@v2.8.2 + with: + timeout_minutes: 30 + max_attempts: 3 + retry_on: error + command: | + pnpm run publish:win-arm64 + on_retry_command: pnpm cache delete + - name: Build and Publish releases (macOS) if: matrix.os == 'macos-latest' env: diff --git a/package.json b/package.json index 4edeaac2f..70e86ce2e 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "package:mac": "pnpm run build && electron-builder --mac", "package:mac:pr": "pnpm run build && electron-builder --mac --publish never", "package:win": "pnpm run build && electron-builder --win", + "package:win-arm64:pr": "pnpm run build && electron-builder --win --arm64 --publish never", "package:win:pr": "pnpm run build && electron-builder --win --publish never", "publish:linux": "pnpm run build && electron-builder --publish always --linux", "publish:linux-arm64": "pnpm run build && electron-builder --publish always --linux --arm64", @@ -55,6 +56,9 @@ "publish:mac:alpha": "pnpm run build && electron-builder --config electron-builder-alpha.yml --publish always --mac", "publish:mac:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --mac", "publish:win": "pnpm run build && electron-builder --publish always --win", + "publish:win-arm64": "pnpm run build && electron-builder --publish always --win --arm64", + "publish:win-arm64:alpha": "pnpm run build && electron-builder --config electron-builder-alpha.yml --publish always --win --arm64", + "publish:win-arm64:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --win --arm64", "publish:win:alpha": "pnpm run build && electron-builder --config electron-builder-alpha.yml --publish always --win", "publish:win:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --win", "start": "electron-vite preview",