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,24 @@ 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_LIB_DIR=C:/vcpkg/packages/sqlite3_arm64-windows/lib" >> $GITHUB_PATH
179+ echo "SQLITE_DATABASE_URL=C:\test.db" >> $GITHUB_ENV
180+
164181 - name : Install postgres (Windows)
165- if : runner .os == 'Windows ' && matrix.backend == 'postgres'
182+ if : matrix .os == 'windows-2025 ' && matrix.backend == 'postgres'
166183 shell : bash
167184 run : |
168185 choco install postgresql14 --force --params '/Password:root'
@@ -172,6 +189,20 @@ jobs:
172189 echo "PG_DATABASE_URL=postgres://postgres:root@localhost/" >> $GITHUB_ENV
173190 echo "PG_EXAMPLE_DATABASE_URL=postgres://postgres:root@localhost/diesel_example" >> $GITHUB_ENV
174191
192+ - name : Install postgres (Windows ARM)
193+ if : matrix.os == 'windows-11-arm' && matrix.backend == 'postgres'
194+ shell : bash
195+ run : |
196+ choco install postgresql14 --force --params '/Password:root'
197+ vcpkg install libpq
198+ dir "C:/vcpkg/packages/libpq_arm64-windows/lib"
199+ dir "C:/vcpkg/packages/libpq_arm64-windows/bin"
200+ echo "PQ_LIB_DIR=C:/vcpkg/packages/libpq_arm64-windows/lib" >> $GITHUB_ENV
201+ echo "C:/vcpkg/packages/libpq_arm64-windows/lib" >> $GITHUB_PATH
202+ echo "C:/vcpkg/packages/libpq_arm64-windows/bin" >> $GITHUB_PATH
203+ echo "PG_DATABASE_URL=postgres://postgres:root@localhost/" >> $GITHUB_ENV
204+ echo "PG_EXAMPLE_DATABASE_URL=postgres://postgres:root@localhost/diesel_example" >> $GITHUB_ENV
205+
175206 - name : Install mysql (Windows)
176207 if : runner.os == 'Windows' && matrix.backend == 'mysql'
177208 shell : bash
@@ -183,8 +214,6 @@ jobs:
183214 "C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin\\mysql" -e "create database diesel_test;" -u root
184215 "C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin\\mysql" -e "create database diesel_unit_test;" -u root
185216 "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"
188217 echo "OPENSSL_RUST_USE_NASM=0" >> $GITHUB_ENV
189218 echo OPENSSL_SRC_PERL=C:/Strawberry/perl/bin/perl >> $GITHUB_ENV
190219 echo "MYSQL_DATABASE_URL=mysql://[email protected] /diesel_test" >> $GITHUB_ENV @@ -196,6 +225,28 @@ jobs:
196225 echo "C:\Program Files\MySQL\MySQL Server 8.0\bin" >> $GITHUB_PATH
197226 dir "C:\Program Files\MySQL\MySQL Server 8.0\lib"
198227
228+ - name : Install mysqlcient (Windows ARM)
229+ if : matrix.os == 'windows-11-arm' && matrix.backend == 'mysql'
230+ shell : bash
231+ run : |
232+ vcpkg install libmysql
233+
234+ - name : Remove doxygen (Windows)
235+ if : matrix.os == 'windows-2025' && matrix.backend == 'mysql'
236+ shell : bash
237+ run : |
238+ # remove doxygen because mysqlclient build otherwise breaks?
239+ rm "C:/Strawberry/c/bin/doxygen.exe"
240+
241+ - name : Install rustup
242+ if : matrix.os == 'windows-11-arm'
243+ shell : pwsh
244+ run : |
245+ Invoke-WebRequest -Uri "https://static.rust-lang.org/rustup/dist/aarch64-pc-windows-msvc/rustup-init.exe" -OutFile rustup-init.exe
246+ .\rustup-init.exe --default-toolchain none -y
247+ "$env:USERPROFILE\.cargo\bin" | Out-File -Append -Encoding ascii $env:GITHUB_PATH
248+ "CARGO_HOME=$env:USERPROFILE\.cargo" | Out-File -Append -Encoding ascii $env:GITHUB_ENV
249+
199250 - name : Install rust toolchain
200251 uses : dtolnay/rust-toolchain@master
201252 with :
0 commit comments