Skip to content

Commit 7042b23

Browse files
Migrate Windows arm64 release build to native windows-11-arm runner
Both windows-11-arm and windows-2025 GitHub-hosted runner images now ship the same VC++/Windows SDK/LLVM toolchain, so the arm64 leg of the Windows release build no longer needs to cross-compile from an x86_64 host. - .github/workflows/create_release.yml: point the arm64 leg of build_windows_binaries and release_windows (already keyed by a per-arch matrix.runner) at windows-11-arm instead of windows-latest-large. Give build_windows_tui_binaries and release_windows_tui the same per-arch matrix.runner treatment (they previously had a flat runs-on: windows-latest-large). Drop the 'Add arm64 target' rustup steps, since the arm64 leg's host target is now aarch64-pc-windows-msvc rather than a cross-compiled add-on. Disable azure/artifact-signing-action's dependency cache (cache-dependencies: false) in both signing steps, since it is not keyed by runner architecture and can otherwise be corrupted when the x64 and arm64 legs of the matrix sign concurrently (Azure/artifact-signing-action#146). - script/install_cargo_binstall: pin the aarch64-pc-windows-msvc cargo-binstall archive and its verified SHA-256 alongside the existing x86_64 entry, so the installer can resolve a native arm64 archive if it is ever selected.
1 parent 1a364d6 commit 7042b23

2 files changed

Lines changed: 18 additions & 13 deletions

File tree

.github/workflows/create_release.yml

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1895,7 +1895,7 @@ jobs:
18951895
# release_windows.
18961896
build_windows_tui_binaries:
18971897
name: Build Release Binary (Windows TUI ${{ matrix.arch }})
1898-
runs-on: windows-latest-large
1898+
runs-on: ${{ matrix.runner }}
18991899
needs: prepare_release
19001900
if: ${{ inputs.build_windows != false }}
19011901
timeout-minutes: 150
@@ -1904,7 +1904,9 @@ jobs:
19041904
matrix:
19051905
include:
19061906
- arch: x64
1907+
runner: windows-latest-large
19071908
- arch: arm64
1909+
runner: windows-11-arm
19081910
steps:
19091911
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
19101912

@@ -1916,10 +1918,6 @@ jobs:
19161918
ref: ${{ needs.prepare_release.outputs.release_branch }}
19171919
install_release_deps: true
19181920
ssh_key: ${{ secrets.WARP_CHANNEL_CONFIG_ACCESS_SSH_KEY }}
1919-
- name: Add arm64 target
1920-
if: ${{ matrix.arch == 'arm64' }}
1921-
run: rustup target add aarch64-pc-windows-msvc
1922-
shell: bash
19231921

19241922
- name: Get channel configuration
19251923
id: get-config
@@ -1947,7 +1945,7 @@ jobs:
19471945
19481946
release_windows_tui:
19491947
name: Build Release (Windows TUI ${{ matrix.arch }})
1950-
runs-on: windows-latest-large
1948+
runs-on: ${{ matrix.runner }}
19511949
needs: [prepare_release, build_windows_binaries, build_windows_tui_binaries]
19521950
if: ${{ inputs.build_windows != false }}
19531951
timeout-minutes: 150
@@ -1957,8 +1955,10 @@ jobs:
19571955
include:
19581956
- arch: x64
19591957
release_arch: x86_64
1958+
runner: windows-latest-large
19601959
- arch: arm64
19611960
release_arch: aarch64
1961+
runner: windows-11-arm
19621962
env:
19631963
TRUSTED_SIGNING_ENDPOINT: https://eus.codesigning.azure.net/
19641964
TRUSTED_SIGNING_ACCOUNT: warpdotdev
@@ -2024,6 +2024,10 @@ jobs:
20242024
file-digest: SHA256
20252025
timestamp-rfc3161: http://timestamp.acs.microsoft.com
20262026
timestamp-digest: SHA256
2027+
# The action's dependency cache is not keyed by runner architecture, so x64 and arm64
2028+
# legs of this matrix can clobber each other's cached tools when they run concurrently
2029+
# (Azure/artifact-signing-action#146).
2030+
cache-dependencies: false
20272031
- name: Build sign-tool command for Inno Setup
20282032
id: setup_signing
20292033
shell: pwsh
@@ -2098,7 +2102,7 @@ jobs:
20982102
- arch: x64
20992103
runner: windows-latest-large
21002104
- arch: arm64
2101-
runner: windows-latest-large
2105+
runner: windows-11-arm
21022106
steps:
21032107
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
21042108

@@ -2111,11 +2115,6 @@ jobs:
21112115
install_release_deps: true
21122116
ssh_key: ${{ secrets.WARP_CHANNEL_CONFIG_ACCESS_SSH_KEY }}
21132117

2114-
- name: Add arm64 target
2115-
if: ${{ matrix.arch == 'arm64' }}
2116-
run: rustup target add aarch64-pc-windows-msvc
2117-
shell: bash
2118-
21192118
- name: Get channel configuration
21202119
id: get-config
21212120
uses: ./.github/actions/get_channel_config/
@@ -2173,7 +2172,7 @@ jobs:
21732172
- arch: x64
21742173
runner: windows-latest-large
21752174
- arch: arm64
2176-
runner: windows-latest-large
2175+
runner: windows-11-arm
21772176
env:
21782177
TRUSTED_SIGNING_ENDPOINT: https://eus.codesigning.azure.net/
21792178
TRUSTED_SIGNING_ACCOUNT: warpdotdev
@@ -2236,6 +2235,10 @@ jobs:
22362235
file-digest: SHA256
22372236
timestamp-rfc3161: http://timestamp.acs.microsoft.com
22382237
timestamp-digest: SHA256
2238+
# The action's dependency cache is not keyed by runner architecture, so x64 and arm64
2239+
# legs of this matrix can clobber each other's cached tools when they run concurrently
2240+
# (Azure/artifact-signing-action#146).
2241+
cache-dependencies: false
22392242

22402243
# The azure/artifact-signing-action above downloads signtool.exe and the Trusted Signing dlib.
22412244
# We locate them so ISCC can call signtool during compilation to sign the inner setup engine

script/install_cargo_binstall

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ archive_sha256() {
2929
echo "c55962a0115f9716b709216de7f8bdd59d6ba8738779e60b051b4593f677717a" ;;
3030
cargo-binstall-x86_64-pc-windows-msvc.zip)
3131
echo "89706aa5215c164d8d091597a470fee72308ac87e8553af395ea77db844a888c" ;;
32+
cargo-binstall-aarch64-pc-windows-msvc.zip)
33+
echo "c6873e81457d9e44973a8e9a849795f2c83765fce0af8ad68b597b5b40dec418" ;;
3234
esac
3335
}
3436

0 commit comments

Comments
 (0)