This is an automated email from the ASF dual-hosted git repository.
hsluoyz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/casbin-sqlx-adapter.git
The following commit(s) were added to refs/heads/master by this push:
new 8f624ec fix(ci): use pre-installed PostgreSQL and generate
sqlite3.def on Windows
8f624ec is described below
commit 8f624ec5f97ce8b90d8749e08473c7c2778fbb48
Author: Yang Luo <[email protected]>
AuthorDate: Sat Jun 27 11:57:28 2026 +0800
fix(ci): use pre-installed PostgreSQL and generate sqlite3.def on Windows
---
.github/workflows/ci.yml | 55 +++++++++++++++++++++++++++++++++++-------------
1 file changed, 40 insertions(+), 15 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 7041c71..e967b83 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -75,26 +75,51 @@ jobs:
- name: Setup PostgreSQL & MySQL & SQLite (for windows)
if: matrix.os == 'windows-latest'
- shell: cmd
+ shell: pwsh
run: |
- choco install postgresql11 --force --params '/Password:root'
- choco install mysql sqlite
- "C:\Program Files\PostgreSQL\11\bin\createuser" casbin_rs
- "C:\Program Files\PostgreSQL\11\bin\createdb" casbin
- "C:\Program Files\PostgreSQL\11\bin\psql" -c "alter user casbin_rs
with encrypted password 'casbin_rs'; grant all privileges on database casbin to
casbin_rs;"
- "C:\tools\mysql\current\bin\mysql" -e "create user
'casbin_rs'@'localhost' identified by 'casbin_rs'; create database casbin;
grant all on `casbin`.* to 'casbin_rs'@'localhost';" -uroot
- cd /D C:\ProgramData\chocolatey\lib\SQLite\tools
- call "C:\Program Files\Microsoft Visual
Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
- lib /machine:x64 /def:sqlite3.def /out:sqlite3.lib
+ # PostgreSQL - use the pre-installed version on the runner (avoids
broken choco package)
+ $pgSvc = Get-Service -Name 'postgresql*' | Select-Object -First 1
+ Start-Service $pgSvc.Name
+ Start-Sleep -Seconds 5
+ $pgDir = (Get-ChildItem 'C:\Program Files\PostgreSQL' -Directory |
+ Sort-Object Name -Descending | Select-Object -First
1).FullName
+ $pgBin = "$pgDir\bin"
+ & "$pgBin\psql" -U postgres -c "CREATE USER casbin_rs WITH ENCRYPTED
PASSWORD 'casbin_rs';"
+ & "$pgBin\psql" -U postgres -c "CREATE DATABASE casbin OWNER
casbin_rs;"
+ & "$pgBin\psql" -U postgres -d casbin -c "GRANT USAGE, CREATE ON
SCHEMA public TO casbin_rs;"
+ & "$pgBin\psql" -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE
casbin TO casbin_rs;"
+ echo "PG_DIR=$pgDir" >> $env:GITHUB_ENV
+
+ # MySQL
+ choco install mysql -y
+ Start-Sleep -Seconds 10
+ & 'C:\tools\mysql\current\bin\mysqld' --install MySQLService
+ Start-Service MySQLService
+ Start-Sleep -Seconds 5
+ & 'C:\tools\mysql\current\bin\mysql' -uroot -e "CREATE USER
'casbin_rs'@'localhost' IDENTIFIED BY 'casbin_rs'; CREATE DATABASE casbin;
GRANT ALL ON ``casbin``.* TO 'casbin_rs'@'localhost';"
+
+ # SQLite - install, then build sqlite3.lib from sqlite3.dll via
generated .def
+ choco install sqlite -y
+ $sqliteDir = 'C:\ProgramData\chocolatey\lib\SQLite\tools'
+ $vcvars = 'C:\Program Files\Microsoft Visual
Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat'
+ # Generate exports list using dumpbin (needs vcvars in PATH)
+ cmd /c "`"$vcvars`" && dumpbin /exports `"$sqliteDir\sqlite3.dll`" >
`"$sqliteDir\exports.txt`""
+ # Parse exports and write .def file
+ $content = Get-Content "$sqliteDir\exports.txt" -Raw
+ $names = [regex]::Matches($content,
'^\s+\d+\s+[0-9A-Fa-f]+\s+[0-9A-Fa-f]+\s+(\w+)', 'Multiline') |
+ ForEach-Object { $_.Groups[1].Value }
+ (@("LIBRARY sqlite3", "EXPORTS") + $names) | Out-File
"$sqliteDir\sqlite3.def" -Encoding ASCII
+ # Build sqlite3.lib
+ cmd /c "`"$vcvars`" && lib /machine:x64
/def:`"$sqliteDir\sqlite3.def`" /out:`"$sqliteDir\sqlite3.lib`""
- name: Set environment variables (for windows)
if: matrix.os == 'windows-latest'
- shell: bash
+ shell: pwsh
run: |
- echo "C:\Program Files\PostgreSQL\11\bin" >> $GITHUB_PATH
- echo "PQ_LIB_DIR=C:\Program Files\PostgreSQL\11\lib" >> $GITHUB_ENV
- echo "MYSQLCLIENT_LIB_DIR=C:\tools\mysql\current\lib" >> $GITHUB_ENV
- echo "SQLITE3_LIB_DIR=C:\ProgramData\chocolatey\lib\SQLite\tools" >>
$GITHUB_ENV
+ echo "$env:PG_DIR\bin" >> $env:GITHUB_PATH
+ echo "PQ_LIB_DIR=$env:PG_DIR\lib" >> $env:GITHUB_ENV
+ echo "MYSQLCLIENT_LIB_DIR=C:\tools\mysql\current\lib" >>
$env:GITHUB_ENV
+ echo "SQLITE3_LIB_DIR=C:\ProgramData\chocolatey\lib\SQLite\tools" >>
$env:GITHUB_ENV
- name: Create SQLite DB
run: |
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]