Skip to content

Commit 4b42d83

Browse files
greggmanclaude
andcommitted
add windows-11-arm to the build matrix
The arm64 image already ships node, cmake, ninja and SDK 10.0.26100.0, so the choco and setup-windows10-sdk steps are gated to x64 rather than pulling x64 tooling onto an arm64 runner. The VS 2022 generator defaults to the host architecture, so no -A flag is needed to target arm64. dawn loads d3dcompiler_47.dll by name out of the directory holding dawn.node, and the committed one is x64, so arm64 gets its own. Extracted from the Microsoft.Windows.SDK.CPP 10.0.26100.9169 nuget package at c/Redist/D3D/arm64/d3dcompiler_47.dll, matching the SDK version the windows builds target, and verified as PE32+ Aarch64. Both DLLs come from the SDK's Redist tree, which is the redistributable subset. Artifacts now upload the whole platform-arch directory so those DLLs travel alongside the binary that needs them. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent f47291a commit 4b42d83

2 files changed

Lines changed: 14 additions & 4 deletions

File tree

.github/workflows/build.yml

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ jobs:
2525
os: windows-latest,
2626
artifact: win32-x64,
2727
}
28+
- {
29+
name: "Windows 11 ARM64",
30+
os: windows-11-arm,
31+
artifact: win32-arm64,
32+
}
2833
- {
2934
name: "Ubuntu_24_GCC",
3035
os: ubuntu-24.04,
@@ -64,8 +69,10 @@ jobs:
6469
echo github.event_name: ${{ github.event_name }}
6570
echo github.ref: ${{ github.ref }}
6671
72+
# x64 only. The arm64 image already ships node, cmake and ninja, and
73+
# choco would pull x64 builds of them onto an arm64 runner.
6774
- name: Install dependencies on windows
68-
if: startsWith(matrix.config.os, 'windows')
75+
if: matrix.config.artifact == 'win32-x64'
6976
run: |
7077
choco install node cmake
7178
node --version
@@ -76,8 +83,10 @@ jobs:
7683
if: startsWith(matrix.config.os, 'windows')
7784
uses: microsoft/setup-msbuild@v2
7885

86+
# x64 only. The arm64 image already has SDK 10.0.26100.0 installed, and
87+
# this action installs an x64 SDK.
7988
- name: Add setup Windows SDK
80-
if: startsWith(matrix.config.os, 'windows')
89+
if: matrix.config.artifact == 'win32-x64'
8190
uses: GuillaumeFalourd/setup-windows10-sdk-action@v2
8291
with:
8392
sdk-version: 26100
@@ -111,11 +120,12 @@ jobs:
111120
npm test
112121
113122
# Named for the platform-arch alone so the package job can download
114-
# artifacts straight into dist/<platform-arch>/ without merging.
123+
# artifacts straight into dist/<platform-arch>/ without merging. Uploads
124+
# the whole directory so win32 carries its d3dcompiler_47.dll along.
115125
- name: Upload Artifact ⬆️
116126
uses: actions/upload-artifact@v4
117127
with:
118-
path: ./dist/${{ matrix.config.artifact }}/dawn.node
128+
path: ./dist/${{ matrix.config.artifact }}/*
119129
name: ${{ matrix.config.artifact }}
120130
overwrite: true
121131

7.76 MB
Binary file not shown.

0 commit comments

Comments
 (0)