4747 - name : Build packages
4848 run : make build-package
4949
50- - name : Install driver package (DEB)
50+ - name : Install driver packages (DEB)
5151 run : |
5252 set -euo pipefail
5353 shopt -s nullglob
5656 echo "No driver DEB packages produced"
5757 exit 1
5858 fi
59+ echo "Installing ${#DRIVER_PACKAGES[@]} DEB package(s):"
60+ for pkg in "${DRIVER_PACKAGES[@]}"; do
61+ echo " - $(basename "$pkg")"
62+ done
63+ # Install both runtime and dev packages
5964 sudo dpkg -i "${DRIVER_PACKAGES[@]}"
6065 sudo apt-get install -f -y
6166
67+ - name : Verify dev package installation
68+ run : |
69+ set -euo pipefail
70+ # Verify headers are installed
71+ if [ ! -f /usr/include/cassandra.h ]; then
72+ echo "ERROR: cassandra.h header not found - dev package may not be installed"
73+ exit 1
74+ fi
75+ # Verify pkg-config file is installed
76+ if ! pkg-config --exists scylla-cpp-driver; then
77+ echo "ERROR: scylla-cpp-driver.pc not found - dev package may not be installed"
78+ exit 1
79+ fi
80+ echo "Dev package verification successful"
81+
6282 - name : Build smoke-test application package
6383 run : |
6484 set -euo pipefail
@@ -103,14 +123,17 @@ jobs:
103123
104124 macos :
105125 name : macOS packages
106- runs-on : macos-13
126+ runs-on : macos-15-intel
107127 steps :
108128 - uses : actions/checkout@v4
109129
110130 - name : Build packages
111131 run : make build-package
112132
113- - name : Install driver package (pkg)
133+ - name : Build smoke-test application package
134+ run : make -C packaging/smoke-test-app package BUILD_TYPE=${{ inputs.build-type }}
135+
136+ - name : Install driver packages (pkg)
114137 run : |
115138 set -euo pipefail
116139 shopt -s nullglob
@@ -119,30 +142,35 @@ jobs:
119142 echo "No driver pkg packages produced"
120143 exit 1
121144 fi
145+ echo "Installing ${#packages[@]} pkg package(s):"
146+ for pkg in "${packages[@]}"; do
147+ echo " - $(basename "$pkg")"
148+ done
149+ # Install all packages (macOS productbuild creates a single package with components)
122150 for pkg in "${packages[@]}"; do
123151 sudo installer -pkg "$pkg" -target /
124152 done
125153
126- - name : Build smoke-test application package
154+ - name : Verify dev package installation
127155 run : |
128156 set -euo pipefail
129- make -C packaging/smoke-test-app package \
130- BUILD_TYPE=${{ inputs.build-type }}
157+ # Verify headers are installed
158+ if [ ! -f /usr/local/include/cassandra.h ]; then
159+ echo "ERROR: cassandra.h header not found - dev package may not be installed"
160+ exit 1
161+ fi
162+ # Verify pkg-config file is installed
163+ if ! PKG_CONFIG_PATH=/usr/local/lib/pkgconfig pkg-config --exists scylla-cpp-driver; then
164+ echo "ERROR: scylla-cpp-driver.pc not found - dev package may not be installed"
165+ exit 1
166+ fi
167+ echo "Dev package verification successful"
131168
132169 - name : Install smoke-test application package (pkg)
133- run : |
134- set -euo pipefail
135- make -C packaging/smoke-test-app install-pkg
170+ run : make -C packaging/smoke-test-app install-pkg
136171
137172 - name : Run smoke-test application against local Scylla
138- run : |
139- set -euo pipefail
140- cleanup() {
141- docker compose -f tests/examples_cluster/docker-compose.yml down --remove-orphans
142- }
143- trap cleanup EXIT
144- docker compose -f tests/examples_cluster/docker-compose.yml up -d --wait
145- /usr/local/bin/scylla-cpp-driver-smoke-test 172.43.0.2
173+ run : make -C packaging/smoke-test-app test-package
146174
147175 - name : Collect artifacts
148176 run : |
@@ -168,6 +196,22 @@ jobs:
168196 steps :
169197 - uses : actions/checkout@v4
170198
199+ - name : Install Docker
200+ shell : pwsh
201+ run : |
202+ $ErrorActionPreference = 'Stop'
203+ $dockerService = Get-Service -Name docker -ErrorAction SilentlyContinue
204+ if (-not $dockerService) {
205+ Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
206+ Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
207+ Install-Package -Name docker -ProviderName DockerMsftProvider -Force
208+ }
209+ try {
210+ Start-Service docker -ErrorAction Stop
211+ } catch {
212+ Write-Warning "Docker service failed to start: $($_.Exception.Message)"
213+ }
214+
171215 - name : Add WiX to PATH
172216 shell : pwsh
173217 run : |
@@ -177,21 +221,43 @@ jobs:
177221 - name : Build packages
178222 run : make build-package
179223
180- - name : Install driver package (MSI)
224+ - name : Install driver packages (MSI)
181225 shell : pwsh
182226 run : |
183227 $ErrorActionPreference = 'Stop'
184228 $packages = Get-ChildItem build -Filter *.msi
185229 if (-not $packages) {
186230 throw "No driver MSI packages produced"
187231 }
232+ Write-Host "Installing $($packages.Count) MSI package(s):"
233+ foreach ($pkg in $packages) {
234+ Write-Host " - $($pkg.Name)"
235+ }
236+ # Install all packages (Windows WIX creates a single MSI with components)
188237 foreach ($pkg in $packages) {
189238 $process = Start-Process msiexec.exe -ArgumentList "/i `"$($pkg.FullName)`" /qn /norestart" -Wait -PassThru
190239 if ($process.ExitCode -ne 0) {
191240 throw "Failed to install driver package $($pkg.Name): exit code $($process.ExitCode)"
192241 }
193242 }
194243
244+ - name : Verify dev package installation
245+ shell : pwsh
246+ run : |
247+ $ErrorActionPreference = 'Stop'
248+ $installPath = "C:\Program Files\ScyllaDB\Scylla CPP Driver"
249+ # Verify headers are installed
250+ $headerPath = Join-Path $installPath "include\cassandra.h"
251+ if (-not (Test-Path $headerPath)) {
252+ throw "ERROR: cassandra.h header not found at $headerPath - dev package may not be installed"
253+ }
254+ # Verify pkg-config file is installed
255+ $pkgConfigPath = Join-Path $installPath "lib\pkgconfig\scylla-cpp-driver.pc"
256+ if (-not (Test-Path $pkgConfigPath)) {
257+ throw "ERROR: scylla-cpp-driver.pc not found at $pkgConfigPath - dev package may not be installed"
258+ }
259+ Write-Host "Dev package verification successful"
260+
195261 - name : Build smoke-test application package
196262 shell : pwsh
197263 run : |
0 commit comments