@@ -2,9 +2,13 @@ name: Build and Test
22
33on :
44 push :
5- branches : [master]
5+ # Run on all branches, but not on tags (release.yml handles tags)
6+ branches :
7+ - ' **'
8+ tags-ignore :
9+ - ' **'
610 pull_request :
7- branches : [master]
11+ workflow_call :
812
913permissions :
1014 contents : read
@@ -15,13 +19,46 @@ jobs:
1519 fail-fast : false
1620 matrix :
1721 include :
18- - os : windows-latest
22+ # ── Windows x64 native ─────────────────────────────────────────────
23+ - os : windows-2022
24+ artifact-name : windows-x64-binaries
25+ firebird-version : ' 5.0.3'
26+ - os : windows-2022
27+ firebird-branch : master
28+
29+ # ── Windows x86 native (WoW64) ─────────────────────────────────────
30+ - os : windows-2022
31+ artifact-name : windows-x86-binaries
32+ arch : Win32
33+ firebird-version : ' 5.0.3'
34+ - os : windows-2022
35+ arch : Win32
36+ firebird-branch : master
37+
38+ # ── Windows ARM64 native ───────────────────────────────────────────
39+ # Official Firebird releases have no win-arm64 binaries; snapshots do.
40+ - os : windows-11-arm
41+ artifact-name : windows-arm64-binaries
42+ firebird-branch : master
43+
44+ # ── Linux x64 native ───────────────────────────────────────────────
1945 - os : ubuntu-22.04
46+ artifact-name : linux-x64-binaries
47+ firebird-version : ' 5.0.3'
48+ - os : ubuntu-22.04
49+ firebird-branch : master
50+
51+ # ── Linux ARM64 native ─────────────────────────────────────────────
52+ - os : ubuntu-22.04-arm
53+ artifact-name : linux-arm64-binaries
54+ firebird-version : ' 5.0.3'
55+ - os : ubuntu-22.04-arm
56+ firebird-branch : master
2057
2158 runs-on : ${{ matrix.os }}
2259
2360 steps :
24- - uses : actions/checkout@v4
61+ - uses : actions/checkout@v6
2562 with :
2663 fetch-depth : 0 # Full history for git-tag-based versioning
2764
@@ -37,18 +74,26 @@ jobs:
3774 shell : pwsh
3875 env :
3976 API_GITHUB_ACCESS_TOKEN : ${{ secrets.GITHUB_TOKEN }}
40- run : Invoke-Build test -Configuration Release -File ./firebird-odbc-driver.build.ps1
77+ FIREBIRD_VERSION : ${{ matrix.firebird-version }}
78+ FIREBIRD_BRANCH : ${{ matrix.firebird-branch }}
79+ run : |
80+ $archArgs = @{}
81+ if ('${{ matrix.arch }}') { $archArgs['Architecture'] = '${{ matrix.arch }}' }
82+ Invoke-Build test -Configuration Release @archArgs -File ./firebird-odbc-driver.build.ps1
4183
42- - name : Upload driver (Windows)
43- if : runner.os == 'Windows'
44- uses : actions/upload-artifact@v4
84+ - name : Upload artifacts (Windows)
85+ if : runner.os == 'Windows' && matrix.artifact-name
86+ uses : actions/upload-artifact@v7
4587 with :
46- name : FirebirdODBC-windows-x64
47- path : build/Release/FirebirdODBC.dll
88+ name : ${{ matrix.artifact-name }}
89+ path : |
90+ build/Release/FirebirdODBC.dll
91+ build/Release/FirebirdODBC.lib
92+ build/Release/FirebirdODBC.pdb
4893
49- - name : Upload driver (Linux)
50- if : runner.os == 'Linux'
51- uses : actions/upload-artifact@v4
94+ - name : Upload artifacts (Linux)
95+ if : runner.os == 'Linux' && matrix.artifact-name
96+ uses : actions/upload-artifact@v7
5297 with :
53- name : FirebirdODBC-linux-x64
98+ name : ${{ matrix.artifact-name }}
5499 path : build/libOdbcFb.so
0 commit comments