Skip to content

Commit 9ef3d36

Browse files
committed
Run tests also on windows arm runners
This commit enables tests on the new windows arm CI runners: https://github.blog/changelog/2025-04-14-windows-arm64-hosted-runners-now-available-in-public-preview/#images-for-arm64-larger-runners
1 parent 90a2a1a commit 9ef3d36

File tree

1 file changed

+56
-6
lines changed

1 file changed

+56
-6
lines changed

.github/workflows/ci.yml

+56-6
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,15 @@ jobs:
2727
matrix:
2828
rust: ["stable"]
2929
backend: ["postgres", "sqlite", "mysql"]
30-
os: [ubuntu-latest, macos-13, macos-15, windows-2025, ubuntu-22.04-arm]
30+
os:
31+
[
32+
ubuntu-latest,
33+
macos-13,
34+
macos-15,
35+
windows-2025,
36+
ubuntu-22.04-arm,
37+
windows-11-arm,
38+
]
3139
include:
3240
- rust: "beta"
3341
backend: "postgres"
@@ -145,7 +153,7 @@ jobs:
145153
echo "MYSQLCLIENT_VERSION=8.4" >> $GITHUB_ENV
146154
147155
- name: Install sqlite (Windows)
148-
if: runner.os == 'Windows' && matrix.backend == 'sqlite'
156+
if: matrix.os == 'windows-2025' && matrix.backend == 'sqlite'
149157
shell: cmd
150158
run: |
151159
choco install sqlite
@@ -154,15 +162,25 @@ jobs:
154162
lib /machine:x64 /def:sqlite3.def /out:sqlite3.lib
155163
156164
- name: Set variables for sqlite (Windows)
157-
if: runner.os == 'Windows' && matrix.backend == 'sqlite'
165+
if: matrix.os == 'windows-2025' && matrix.backend == 'sqlite'
158166
shell: bash
159167
run: |
160168
echo "C:\ProgramData\chocolatey\lib\SQLite\tools" >> $GITHUB_PATH
161169
echo "SQLITE3_LIB_DIR=C:\ProgramData\chocolatey\lib\SQLite\tools" >> $GITHUB_ENV
162170
echo "SQLITE_DATABASE_URL=C:\test.db" >> $GITHUB_ENV
163171
172+
- name: Install sqlite (Windows ARM)
173+
if: matrix.os == 'windows-11-arm' && matrix.backend == 'sqlite'
174+
shell: bash
175+
run: |
176+
vcpkg install sqlite3
177+
echo "SQLITE3_LIB_DIR=C:/vcpkg/packages/sqlite3_arm64-windows/lib" >> $GITHUB_ENV
178+
echo "SQLITE3_STATIC=1" >> $GITHUB_ENV
179+
echo "VCPKGRS_DYNAMIC=0" >> $GITHUB_ENV
180+
echo "SQLITE_DATABASE_URL=C:\test.db" >> $GITHUB_ENV
181+
164182
- name: Install postgres (Windows)
165-
if: runner.os == 'Windows' && matrix.backend == 'postgres'
183+
if: matrix.os == 'windows-2025' && matrix.backend == 'postgres'
166184
shell: bash
167185
run: |
168186
choco install postgresql14 --force --params '/Password:root'
@@ -172,6 +190,18 @@ jobs:
172190
echo "PG_DATABASE_URL=postgres://postgres:root@localhost/" >> $GITHUB_ENV
173191
echo "PG_EXAMPLE_DATABASE_URL=postgres://postgres:root@localhost/diesel_example" >> $GITHUB_ENV
174192
193+
- name: Install postgres (Windows ARM)
194+
if: matrix.os == 'windows-11-arm' && matrix.backend == 'postgres'
195+
shell: bash
196+
run: |
197+
choco install postgresql14 --force --params '/Password:root'
198+
vcpkg install libpq
199+
dir "C:/vcpkg/packages/libpq_arm64-windows/"
200+
echo "PQ_LIB_DIR=C:/vcpkg/packages/libpq_arm64-windows/" >> $GITHUB_ENV
201+
echo "C:/vcpkg/packages/libpq_arm64-windows/" >> $GITHUB_PATH
202+
echo "PG_DATABASE_URL=postgres://postgres:root@localhost/" >> $GITHUB_ENV
203+
echo "PG_EXAMPLE_DATABASE_URL=postgres://postgres:root@localhost/diesel_example" >> $GITHUB_ENV
204+
175205
- name: Install mysql (Windows)
176206
if: runner.os == 'Windows' && matrix.backend == 'mysql'
177207
shell: bash
@@ -183,8 +213,6 @@ jobs:
183213
"C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin\\mysql" -e "create database diesel_test;" -u root
184214
"C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin\\mysql" -e "create database diesel_unit_test;" -u root
185215
"C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin\\mysql" -e 'grant all on `diesel_%`.* to 'root'@'localhost';' -uroot
186-
# remove doxygen because mysqlclient build otherwise breaks?
187-
rm "C:/Strawberry/c/bin/doxygen.exe"
188216
echo "OPENSSL_RUST_USE_NASM=0" >> $GITHUB_ENV
189217
echo OPENSSL_SRC_PERL=C:/Strawberry/perl/bin/perl >> $GITHUB_ENV
190218
echo "MYSQL_DATABASE_URL=mysql://[email protected]/diesel_test" >> $GITHUB_ENV
@@ -196,6 +224,28 @@ jobs:
196224
echo "C:\Program Files\MySQL\MySQL Server 8.0\bin" >> $GITHUB_PATH
197225
dir "C:\Program Files\MySQL\MySQL Server 8.0\lib"
198226
227+
- name: Install mysqlcient (Windows ARM)
228+
if: matrix.os == 'windows-11-arm' && matrix.backend == 'mysql'
229+
shell: bash
230+
run: |
231+
vcpkg install libmysql
232+
233+
- name: Remove doxygen (Windows)
234+
if: matrix.os == 'windows-2025' && matrix.backend == 'mysql'
235+
shell: bash
236+
run: |
237+
# remove doxygen because mysqlclient build otherwise breaks?
238+
rm "C:/Strawberry/c/bin/doxygen.exe"
239+
240+
- name: Install rustup
241+
if: matrix.os == 'windows-11-arm'
242+
shell: pwsh
243+
run: |
244+
Invoke-WebRequest -Uri "https://static.rust-lang.org/rustup/dist/aarch64-pc-windows-msvc/rustup-init.exe" -OutFile rustup-init.exe
245+
.\rustup-init.exe --default-toolchain none -y
246+
"$env:USERPROFILE\.cargo\bin" | Out-File -Append -Encoding ascii $env:GITHUB_PATH
247+
"CARGO_HOME=$env:USERPROFILE\.cargo" | Out-File -Append -Encoding ascii $env:GITHUB_ENV
248+
199249
- name: Install rust toolchain
200250
uses: dtolnay/rust-toolchain@master
201251
with:

0 commit comments

Comments
 (0)