Repository: podman-desktop/podman-desktop (TypeScript)

Issue:
Extend the testing matrix for update-e2e tests on pr-check to windows arm platform
### Is your enhancement related to a problem? Please describe

Right now we run e2e tests for update on `windows-2025` which is x86_64 based arch. We can also make use of `windows-arm-11` runners in preview mode to test update on arm based systems.

### Describe the solution you'd like

Expand testing matrix on PR check and on `e2e-test-main` to also run on `windows-11-arm`.

### Describe alternatives you've considered

_No response_

### Additional context

_No response_


Discussion:

Patch:
diff --git a/.github/workflows/pr-check.yaml b/.github/workflows/pr-check.yaml
index b3817d2b3f54f..d96cab71423fc 100644
--- a/.github/workflows/pr-check.yaml
+++ b/.github/workflows/pr-check.yaml
@@ -434,7 +434,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix: 
-        os: [windows-2025]
+        os: [windows-2025, windows-11-arm]
     if: contains(github.event.pull_request.labels.*.name, 'area/update') || needs.detect_pnpm_changes.outputs.pnpm_lock_changed == 'true'
     runs-on: ${{ matrix.os }}
     timeout-minutes: 60


Test patch:
diff --git a/.github/workflows/e2e-main.yaml b/.github/workflows/e2e-main.yaml
index b1851fe12c5db..bedc675445437 100644
--- a/.github/workflows/e2e-main.yaml
+++ b/.github/workflows/e2e-main.yaml
@@ -175,8 +175,8 @@ jobs:
             !./tests/**/traces/raw
 
   win-update-e2e-test:
-    name: win update e2e tests - ${{ matrix.installation }}
-    runs-on: windows-2025
+    name: ${{ matrix.os }} update e2e tests - ${{ matrix.installation }}
+    runs-on: ${{ matrix.os }}
     # disable on forks as secrets are not available
     if: github.event.repository.fork == false
     permissions:
@@ -188,6 +188,7 @@ jobs:
       fail-fast: false
       matrix:
         installation: ['vanilla', 'custom-extensions']
+        os: [windows-2025, windows-11-arm]
         exclude:
         - installation: ${{ (github.event.inputs.update_with_extensions && github.event.inputs.update_with_extensions == 'true') && 'N/A' || 'custom-extensions' }}
     steps:
@@ -220,11 +221,30 @@ jobs:
         env:
           ELECTRON_ENABLE_INSPECT: true
         run: |
+          (Get-Content packages/main/src/plugin/updater.ts).Replace('autoUpdater.autoDownload = false;', 'autoUpdater.autoDownload = false;autoUpdater.allowPrerelease=true;') | Set-Content packages/main/src/plugin/updater.ts
           pnpm compile:current --win nsis
-          $path=('./dist/win-unpacked/Podman Desktop.exe' | resolve-path).ProviderPath
+          $runnerArch=$env:RUNNER_ARCH
+          $unpackedPath = "dist/win-unpacked"
+          if ($runnerArch -eq 'ARM64') {
+            $unpackedPath = "dist/win-arm64-unpacked"
+          }
+          echo ("PD_DIST_PATH=" + $unpackedPath) >> $env:GITHUB_ENV
+          $path=("./$unpackedPath/Podman Desktop.exe" | resolve-path).ProviderPath
           echo $path
           echo ("PODMAN_DESKTOP_BINARY=" + $path) >> $env:GITHUB_ENV
 
+      - name: Manually set testing-prereleases as update target
+        run: |
+          echo "Replace app-update.yml repo to a testing-prerelease, which are more stable update target then the prerelease"
+          $updateFile = "$env:PD_DIST_PATH/resources/app-update.yml"
+          if (-Not (Test-Path $updateFile)) {
+            Write-Error "app-update.yml not found at $updateFile"
+          }
+          (Get-Content $updateFile).Replace('repo: podman-desktop', 'repo: testing-prereleases') |
+            Set-Content -ErrorAction Stop $updateFile
+          echo "Show app-update.yml after replace..."
+          cat "$env:PD_DIST_PATH/resources/app-update.yml"
+
       - name: Run E2E Update test
         env:
           INSTALLATION_TYPE: ${{ matrix.installation }}
@@ -247,7 +267,7 @@ jobs:
       - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
         if: always()
         with:
-          name: update-e2e-test-${{ matrix.installation }}
+          name: ${{ matrix.os }}-update-e2e-test-${{ matrix.installation }}
           path: |
             ./tests/**/output/
             !./tests/**/traces/raw