@@ -72,18 +72,32 @@ jobs:
7272 # Each database provider runs independently to isolate failures and validate
7373 # database-specific persistence logic.
7474 test-sql-databases :
75- name : Test (Linux, ${{ matrix.db }})
75+ name : Test (Linux, ${{ matrix.tfm }})
7676 runs-on : ubuntu-latest
7777 strategy :
7878 fail-fast : false
7979 matrix :
80- db :
81- - postgresql
82- - mysql
83- - sqlite
84- - oracle
80+ # Run each modern TFM independently so failures are isolated and easy to read.
81+ tfm :
82+ - net8.0
83+ - net9.0
84+ - net10.0
8585
8686 services :
87+ sqlexpress :
88+ image : mcr.microsoft.com/mssql/server:2022-RTM-GDR1-ubuntu-20.04
89+ env :
90+ SA_PASSWORD : Password12!
91+ ACCEPT_EULA : Y
92+ MSSQL_PID : Express
93+ options : >-
94+ --health-cmd "sqlcmd -S localhost -U SA -P Password12! -Q 'SELECT 1'"
95+ --health-interval 10s
96+ --health-timeout 5s
97+ --health-retries 5
98+ ports :
99+ - 1433:1433
100+
87101 postgresql :
88102 image : postgres:15-alpine
89103 env :
@@ -125,6 +139,7 @@ jobs:
125139 - 1521:1521
126140
127141 env :
142+ NEventStore.MsSql : Server=localhost;Database=NEventStore;User Id=SA;Password=Password12!;TrustServerCertificate=True;
128143 NEventStore.PostgreSql : Server=localhost;Database=NEventStore;Uid=postgres;Pwd=Password12!;Enlist=false;
129144 NEventStore.MySql : Server=localhost;Database=NEventStore;Uid=root;Pwd=Password12!;AutoEnlist=false;
130145 NEventStore.Sqlite : Data Source=:memory:;Cache=Shared;
@@ -154,13 +169,13 @@ jobs:
154169 restore-keys : |
155170 nuget-${{ runner.os }}-
156171
157- - name : Run tests for ${{ matrix.db }}
158- run : dotnet test ./src/NEventStore.Persistence.Sql.Core.sln -c Release --logger "trx;LogFileName=test-results- ${{ matrix.db }}.trx" --filter "Category= ${{ matrix.db }}" 2>&1 || true
172+ - name : Run tests for ${{ matrix.tfm }}
173+ run : dotnet test ./src/NEventStore.Persistence.Sql.Core.sln -c Release -f ${{ matrix.tfm }} --logger "trx;LogFileName=test-results- ${{ matrix.tfm }}.trx"
159174
160175 - name : Upload test results
161176 uses : actions/upload-artifact@v7
162177 with :
163- name : test-results-${{ matrix.db }}
164- path : " **/test-results-${{ matrix.db }}.trx"
178+ name : test-results-${{ matrix.tfm }}
179+ path : " **/test-results-${{ matrix.tfm }}.trx"
165180 if-no-files-found : ignore
166181 retention-days : 14
0 commit comments