Skip to content

Commit ca590f0

Browse files
committed
Add GitHub Actions CI with full build and test automation
Add a unified build-and-test workflow using PowerShell (Invoke-Build) and PSFirebird for cross-platform CI on Windows and Linux: - Build the driver with CMake (Release, x64) - Download and configure Firebird 5.0.2 via PSFirebird module - Create test databases (UTF-8 and ISO-8859-1) - Register the ODBC driver - Run the full test suite with three charset configurations Also: - Fix processorArchitecture in DLL manifest from X86 to wildcard (*) so the driver loads correctly on x64 and ARM64 builds - Remove linux.yml (superseded by build-and-test.yml) - Remove rpi_arm64.yml (niche; Linux CI covers this) - Clean up temporary branch names from msbuild workflow triggers
1 parent 8e64f5e commit ca590f0

8 files changed

Lines changed: 362 additions & 79 deletions
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Build and Test
2+
3+
on:
4+
push:
5+
branches: [master]
6+
pull_request:
7+
branches: [master]
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
build-and-test:
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
include:
18+
- os: windows-latest
19+
- os: ubuntu-22.04
20+
21+
runs-on: ${{ matrix.os }}
22+
23+
steps:
24+
- uses: actions/checkout@v4
25+
with:
26+
fetch-depth: 0 # Full history for git-tag-based versioning
27+
28+
- name: Install prerequisites
29+
shell: pwsh
30+
run: ./install-prerequisites.ps1
31+
32+
- name: Install unixODBC (Linux)
33+
if: runner.os == 'Linux'
34+
run: sudo apt-get update && sudo apt-get install -y unixodbc unixodbc-dev
35+
36+
- name: Build, install and test
37+
shell: pwsh
38+
run: Invoke-Build test -Configuration Release -File ./firebird-odbc-driver.build.ps1
39+
40+
- name: Upload driver (Windows)
41+
if: runner.os == 'Windows'
42+
uses: actions/upload-artifact@v4
43+
with:
44+
name: FirebirdODBC-windows-x64
45+
path: build/Release/FirebirdODBC.dll
46+
47+
- name: Upload driver (Linux)
48+
if: runner.os == 'Linux'
49+
uses: actions/upload-artifact@v4
50+
with:
51+
name: FirebirdODBC-linux-x64
52+
path: build/libOdbcFb.so

.github/workflows/linux.yml

Lines changed: 0 additions & 36 deletions
This file was deleted.

.github/workflows/msbuild.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ name: MSBuild
77

88
on:
99
push:
10-
branches: [ "master", "new-build-system", "new-build-system-no-pr" ]
10+
branches: [master]
1111
pull_request:
12-
branches: [ "master" ]
12+
branches: [master]
1313

1414
env:
1515
# Path to the solution file relative to the root of the project.

.github/workflows/msbuild_arm64.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ name: MSBuild_ARM64
77

88
on:
99
push:
10-
branches: [ "master", "new-build-system", "new-build-system-no-pr" ]
10+
branches: [master]
1111
pull_request:
12-
branches: [ "master" ]
12+
branches: [master]
1313

1414
env:
1515
# Path to the solution file relative to the root of the project.

.github/workflows/rpi_arm64.yml

Lines changed: 0 additions & 37 deletions
This file was deleted.

FirebirdODBC.dll.manifest

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
33
<assemblyIdentity
44
version="1.0.0.0"
5-
processorArchitecture="X86"
5+
processorArchitecture="*"
66
name="Firebird OdbcJdbc driver"
77
type="win32"
88
/>
@@ -13,7 +13,7 @@
1313
type="win32"
1414
name="Microsoft.Windows.Common-Controls"
1515
version="6.0.0.0"
16-
processorArchitecture="X86"
16+
processorArchitecture="*"
1717
publicKeyToken="6595b64144ccf1df"
1818
language="*"
1919
/>

0 commit comments

Comments
 (0)