Skip to content

Commit d1d9612

Browse files
committed
1
1 parent f0ea189 commit d1d9612

File tree

2 files changed

+60
-40
lines changed

2 files changed

+60
-40
lines changed

.github/workflows/build-cpack-packages.yml

Lines changed: 9 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ jobs:
6464
cpack -G RPM -C ${{ inputs.build-type }}
6565
6666
- name: Install driver package (DEB)
67-
if: runner.os == 'Linux'
6867
run: |
6968
set -euo pipefail
7069
shopt -s nullglob
@@ -77,31 +76,20 @@ jobs:
7776
sudo apt-get install -f -y
7877
7978
- name: Build smoke-test application package
80-
if: runner.os == 'Linux'
8179
run: |
8280
set -euo pipefail
83-
cmake -S packaging/smoke-test-app -B packaging/smoke-test-app/build \
84-
-G Ninja -DCMAKE_BUILD_TYPE=${{ inputs.build-type }} \
85-
-DCMAKE_INSTALL_PREFIX=/usr
86-
cmake --build packaging/smoke-test-app/build --config ${{ inputs.build-type }}
87-
(cd packaging/smoke-test-app/build && cpack -G DEB -C ${{ inputs.build-type }})
88-
(cd packaging/smoke-test-app/build && cpack -G RPM -C ${{ inputs.build-type }})
81+
make -C packaging/smoke-test-app package \
82+
BUILD_TYPE=${{ inputs.build-type }} \
83+
CMAKE_GENERATOR=Ninja \
84+
INSTALL_PREFIX=/usr \
85+
CPACK_GENERATORS="DEB RPM"
8986
9087
- name: Install smoke-test application package (DEB)
91-
if: runner.os == 'Linux'
9288
run: |
9389
set -euo pipefail
94-
shopt -s nullglob
95-
APP_PACKAGES=(packaging/smoke-test-app/build/*.deb)
96-
if [ "${#APP_PACKAGES[@]}" -eq 0 ]; then
97-
echo "No smoke-test DEB packages produced"
98-
exit 1
99-
fi
100-
sudo dpkg -i "${APP_PACKAGES[@]}"
101-
sudo apt-get install -f -y
90+
make -C packaging/smoke-test-app install-deb
10291
10392
- name: Run smoke-test application against local Scylla
104-
if: runner.os == 'Linux'
10593
run: |
10694
set -euo pipefail
10795
cleanup() {
@@ -148,7 +136,6 @@ jobs:
148136
cpack -G DragNDrop -C ${{ inputs.build-type }}
149137
150138
- name: Install driver package (pkg)
151-
if: runner.os == 'macOS'
152139
run: |
153140
set -euo pipefail
154141
shopt -s nullglob
@@ -162,31 +149,17 @@ jobs:
162149
done
163150
164151
- name: Build smoke-test application package
165-
if: runner.os == 'macOS'
166152
run: |
167153
set -euo pipefail
168-
cmake -S packaging/smoke-test-app -B packaging/smoke-test-app/build \
169-
-DCMAKE_BUILD_TYPE=${{ inputs.build-type }}
170-
cmake --build packaging/smoke-test-app/build --config ${{ inputs.build-type }}
171-
(cd packaging/smoke-test-app/build && cpack -G productbuild -C ${{ inputs.build-type }})
172-
(cd packaging/smoke-test-app/build && cpack -G DragNDrop -C ${{ inputs.build-type }})
154+
make -C packaging/smoke-test-app package \
155+
BUILD_TYPE=${{ inputs.build-type }}
173156
174157
- name: Install smoke-test application package (pkg)
175-
if: runner.os == 'macOS'
176158
run: |
177159
set -euo pipefail
178-
shopt -s nullglob
179-
packages=(packaging/smoke-test-app/build/*.pkg)
180-
if [ "${#packages[@]}" -eq 0 ]; then
181-
echo "No smoke-test pkg packages produced"
182-
exit 1
183-
fi
184-
for pkg in "${packages[@]}"; do
185-
sudo installer -pkg "$pkg" -target /
186-
done
160+
make -C packaging/smoke-test-app install-pkg
187161
188162
- name: Run smoke-test application against local Scylla
189-
if: runner.os == 'macOS'
190163
run: |
191164
set -euo pipefail
192165
cleanup() {
@@ -267,7 +240,6 @@ jobs:
267240
run: cpack -G WIX -C ${{ inputs.build-type }}
268241

269242
- name: Install driver package (MSI)
270-
if: runner.os == 'Windows'
271243
shell: pwsh
272244
run: |
273245
$ErrorActionPreference = 'Stop'
@@ -283,7 +255,6 @@ jobs:
283255
}
284256
285257
- name: Build smoke-test application package
286-
if: runner.os == 'Windows'
287258
shell: pwsh
288259
run: |
289260
$ErrorActionPreference = 'Stop'
@@ -295,7 +266,6 @@ jobs:
295266
Pop-Location
296267
297268
- name: Install smoke-test application package (MSI)
298-
if: runner.os == 'Windows'
299269
shell: pwsh
300270
run: |
301271
$ErrorActionPreference = 'Stop'
@@ -311,7 +281,6 @@ jobs:
311281
}
312282
313283
- name: Run smoke-test application against local Scylla
314-
if: runner.os == 'Windows'
315284
shell: pwsh
316285
run: |
317286
$ErrorActionPreference = 'Stop'

packaging/smoke-test-app/Makefile

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
SHELL := /bin/bash
2+
3+
BUILD_DIR ?= build
4+
BUILD_TYPE ?= Release
5+
CMAKE_GENERATOR ?=
6+
INSTALL_PREFIX ?=
7+
CPACK_GENERATORS ?= productbuild DragNDrop
8+
INSTALL_TARGET ?= /
9+
10+
CMAKE_GENERATOR_FLAG :=
11+
ifneq ($(strip $(CMAKE_GENERATOR)),)
12+
CMAKE_GENERATOR_FLAG := -G $(CMAKE_GENERATOR)
13+
endif
14+
15+
CMAKE_INSTALL_PREFIX_FLAG :=
16+
ifneq ($(strip $(INSTALL_PREFIX)),)
17+
CMAKE_INSTALL_PREFIX_FLAG := -DCMAKE_INSTALL_PREFIX=$(INSTALL_PREFIX)
18+
endif
19+
20+
.PHONY: package
21+
package:
22+
cmake -S . -B $(BUILD_DIR) $(CMAKE_GENERATOR_FLAG) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) $(CMAKE_INSTALL_PREFIX_FLAG)
23+
cmake --build $(BUILD_DIR) --config $(BUILD_TYPE)
24+
for generator in $(CPACK_GENERATORS); do \
25+
(cd $(BUILD_DIR) && cpack -G $$generator -C $(BUILD_TYPE)); \
26+
done
27+
28+
.PHONY: install-pkg
29+
install-pkg:
30+
set -euo pipefail; \
31+
shopt -s nullglob; \
32+
packages=($(BUILD_DIR)/*.pkg); \
33+
if [ "$${#packages[@]}" -eq 0 ]; then \
34+
echo "No smoke-test pkg packages produced"; \
35+
exit 1; \
36+
fi; \
37+
for pkg in "$${packages[@]}"; do \
38+
sudo installer -pkg "$$pkg" -target $(INSTALL_TARGET); \
39+
done
40+
41+
.PHONY: install-deb
42+
install-deb:
43+
set -euo pipefail; \
44+
shopt -s nullglob; \
45+
packages=($(BUILD_DIR)/*.deb); \
46+
if [ "$${#packages[@]}" -eq 0 ]; then \
47+
echo "No smoke-test DEB packages produced"; \
48+
exit 1; \
49+
fi; \
50+
sudo dpkg -i "$${packages[@]}"; \
51+
sudo apt-get install -f -y

0 commit comments

Comments
 (0)