Skip to content

Commit d5a95b8

Browse files
committed
ci: test both x86_64 and aarch64
Now that the hosted Windows/ARM64 GitHub runners are in public preview, we can. Signed-off-by: Johannes Schindelin <[email protected]>
1 parent f078bad commit d5a95b8

File tree

1 file changed

+41
-10
lines changed

1 file changed

+41
-10
lines changed

.github/workflows/main.yml

Lines changed: 41 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -72,17 +72,23 @@ jobs:
7272
check-for-missing-dlls: ${{ steps.set-matrix.outputs.check-for-missing-dlls }}
7373
build-packages:
7474
needs: determine-packages
75-
runs-on: windows-latest
7675
if: needs.determine-packages.outputs.matrix != '[""]'
7776
strategy:
7877
fail-fast: false
7978
matrix:
8079
directory: ${{ fromJSON(needs.determine-packages.outputs.matrix) }}
80+
architecture:
81+
- name: x86_64
82+
runner: windows-latest
83+
- name: aarch64
84+
runner: windows-11-arm
85+
runs-on: ${{ matrix.architecture.runner }}
8186
steps:
8287
- uses: actions/checkout@v4
8388
- uses: git-for-windows/setup-git-for-windows-sdk@v1
8489
with:
8590
flavor: full
91+
architecture: ${{ matrix.architecture.name }}
8692
- name: build ${{ matrix.directory }}
8793
id: build
8894
shell: bash
@@ -112,31 +118,42 @@ jobs:
112118
fi
113119
build-artifacts:
114120
needs: determine-packages
115-
runs-on: windows-latest
116121
if: needs.determine-packages.outputs.artifacts != '[""]'
117122
strategy:
118123
fail-fast: false
119124
matrix:
120125
directory: ${{ fromJSON(needs.determine-packages.outputs.artifacts) }}
126+
architecture:
127+
- name: x86_64
128+
runner: windows-latest
129+
git-sdk: git-sdk-64
130+
mingw-prefix: mingw64
131+
msystem: MINGW64
132+
- name: aarch64
133+
runner: windows-11-arm
134+
git-sdk: git-sdk-arm64
135+
mingw-prefix: clangarm64
136+
msystem: CLANGARM64
137+
runs-on: ${{ matrix.architecture.runner }}
121138
steps:
122139
- uses: actions/checkout@v4
123140
- name: initialize bare SDK clone
124141
shell: bash
125142
run: |
126143
git clone --bare --depth=1 --single-branch --branch=main --filter=blob:none \
127-
https://github.com/git-for-windows/git-sdk-64 .sdk
144+
https://github.com/git-for-windows/${{ matrix.architecture.git-sdk }} .sdk
128145
- name: build build-installers-64 artifact
129146
shell: bash
130147
run: |
131148
./please.sh create-sdk-artifact \
132-
--architecture=x86_64 \
149+
--architecture=${{ matrix.architecture.name }} \
133150
--sdk=.sdk \
134151
--out=sdk-artifact \
135152
build-installers &&
136153
cygpath -aw "$PWD/sdk-artifact/usr/bin/core_perl" >>$GITHUB_PATH &&
137154
cygpath -aw "$PWD/sdk-artifact/usr/bin" >>$GITHUB_PATH &&
138-
cygpath -aw "$PWD/sdk-artifact/mingw64/bin" >>$GITHUB_PATH &&
139-
echo "MSYSTEM=MINGW64" >>$GITHUB_ENV
155+
cygpath -aw "$PWD/sdk-artifact/${{ matrix.architecture.mingw-prefix }}/bin" >>$GITHUB_PATH &&
156+
echo "MSYSTEM=${{ matrix.architecture.msystem }}" >>$GITHUB_ENV
140157
- name: build ${{ matrix.directory }}/
141158
shell: bash
142159
id: build
@@ -161,7 +178,7 @@ jobs:
161178
exit 1
162179
}
163180
"$env:ProgramFiles\Git\usr\bin" | Out-File -Encoding ascii -Append $env:GITHUB_PATH
164-
"$env:ProgramFiles\Git\mingw64\bin" | Out-File -Encoding ascii -Append $env:GITHUB_PATH
181+
"$env:ProgramFiles\Git\${{ matrix.architecture.mingw-prefix }}\bin" | Out-File -Encoding ascii -Append $env:GITHUB_PATH
165182
- name: show installer log
166183
# run this even if the installation failed (actually, _in particular_ when the installation failed)
167184
if: always() && matrix.directory == 'installer'
@@ -195,7 +212,7 @@ jobs:
195212
}
196213
Get-ChildItem -Path "portable-git"
197214
"$PWD\portable-git\usr\bin" | Out-File -Encoding ascii -Append $env:GITHUB_PATH
198-
"$PWD\portable-git\mingw64\bin" | Out-File -Encoding ascii -Append $env:GITHUB_PATH
215+
"$PWD\portable-git\${{ matrix.architecture.mingw-prefix }}\bin" | Out-File -Encoding ascii -Append $env:GITHUB_PATH
199216
- name: validate
200217
if: matrix.directory == 'portable'
201218
shell: bash
@@ -208,7 +225,6 @@ jobs:
208225
sdk-artifacts:
209226
needs: determine-packages
210227
if: needs.determine-packages.outputs.test-sdk-artifacts == 'true'
211-
runs-on: windows-latest
212228
strategy:
213229
fail-fast: false
214230
matrix:
@@ -218,10 +234,17 @@ jobs:
218234
mingw-prefix: mingw32
219235
msystem: MINGW32
220236
sdk-repo: git-sdk-32
237+
runner: windows-latest
221238
- name: x86_64
222239
mingw-prefix: mingw64
223240
msystem: MINGW64
224241
sdk-repo: git-sdk-64
242+
runner: windows-latest
243+
- name: aarch64
244+
mingw-prefix: clangarm64
245+
msystem: CLANGARM64
246+
sdk-repo: git-sdk-arm64
247+
runner: windows-11-arm
225248
exclude:
226249
- artifact: minimal
227250
arch:
@@ -235,6 +258,7 @@ jobs:
235258
mingw-prefix: mingw32
236259
msystem: MINGW32
237260
sdk-repo: git-sdk-32
261+
runs-on: ${{ matrix.arch.runner }}
238262
steps:
239263
- uses: actions/checkout@v4
240264
- name: initialize bare SDK clone
@@ -322,7 +346,6 @@ jobs:
322346
check-for-missing-dlls:
323347
needs: determine-packages
324348
if: needs.determine-packages.outputs.test-sdk-artifacts == 'true' || needs.determine-packages.outputs.check-for-missing-dlls == 'true'
325-
runs-on: windows-latest
326349
strategy:
327350
fail-fast: false
328351
matrix:
@@ -331,10 +354,18 @@ jobs:
331354
mingw-prefix: mingw32
332355
msystem: MINGW32
333356
sdk-repo: git-sdk-32
357+
runner: windows-latest
334358
- name: x86_64
335359
mingw-prefix: mingw64
336360
msystem: MINGW64
337361
sdk-repo: git-sdk-64
362+
runner: windows-latest
363+
- name: aarch64
364+
mingw-prefix: clangarm64
365+
msystem: CLANGARM64
366+
sdk-repo: git-sdk-arm64
367+
runner: windows-11-arm
368+
runs-on: ${{ matrix.arch.runner }}
338369
steps:
339370
- uses: actions/checkout@v4
340371
- name: initialize bare SDK clone

0 commit comments

Comments
 (0)