Skip to content

Commit fd5bbb9

Browse files
committed
1
1 parent 01062a2 commit fd5bbb9

File tree

2 files changed

+109
-86
lines changed

2 files changed

+109
-86
lines changed

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

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,17 @@ jobs:
4747
- name: Build packages
4848
run: make build-package
4949

50-
- name: Install driver packages (DEB)
50+
- name: Install driver dev package (DEB)
51+
run: make -C packaging/smoke-test-app install-driver-dev-deb
52+
53+
- name: Build smoke-test application package (DEB)
5154
run: make -C packaging/smoke-test-app package
5255

53-
- name: Build smoke-test application package
54-
run: make -C packaging/smoke-test-app package \
55-
BUILD_TYPE=${{ inputs.build-type }} \
56-
CMAKE_GENERATOR=Ninja \
57-
INSTALL_PREFIX=/usr \
58-
CPACK_GENERATORS="DEB RPM"
56+
- name: Install driver dev package (DEB)
57+
run: make -C packaging/smoke-test-app install-driver-dev-deb
5958

6059
- name: Install smoke-test application package (DEB)
61-
run: make -C packaging/smoke-test-app install-deb
60+
run: make -C packaging/smoke-test-app install-app-deb
6261

6362
- name: Run smoke-test application against local Scylla
6463
run: make -C packaging/smoke-test-app test-package
@@ -127,7 +126,7 @@ jobs:
127126
echo "Dev package verification successful"
128127
129128
- name: Install smoke-test application package (pkg)
130-
run: make -C packaging/smoke-test-app install-pkg
129+
run: make -C packaging/smoke-test-app install-app-pkg
131130

132131
- name: Run smoke-test application against local Scylla
133132
run: make -C packaging/smoke-test-app test-package

packaging/smoke-test-app/Makefile

Lines changed: 101 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
SHELL := /bin/bash
2+
.ONESHELL:
23

3-
BUILD_DIR ?= build
4+
MAKEFILE_PATH := $(abspath $(dir $(abspath $(lastword $(MAKEFILE_LIST)))))
5+
BUILD_DIR ?= ${MAKEFILE_PATH}/build
46
BUILD_TYPE ?= Release
57
CMAKE_GENERATOR ?=
68
INSTALL_PREFIX ?=
7-
CPACK_GENERATORS ?= productbuild DragNDrop
89
INSTALL_TARGET ?= /
9-
MAKEFILE_PATH := $(abspath $(dir $(abspath $(lastword $(MAKEFILE_LIST)))))
1010

1111
CMAKE_GENERATOR_FLAG :=
1212
ifneq ($(strip $(CMAKE_GENERATOR)),)
@@ -35,99 +35,123 @@ endif
3535
fi
3636

3737
ifeq ($(OS_TYPE),macos)
38+
CPACK_GENERATORS ?= productbuild DragNDrop
39+
3840
.prepare-for-test: .prepare-docker-macos
3941
else ifeq ($(OS_TYPE),windows)
42+
CPACK_GENERATORS ?= WIX
43+
4044
.prepare-for-test:
4145
else
46+
CPACK_GENERATORS ?= DEB RPM
47+
4248
.prepare-for-test:
4349
endif
4450

45-
.PHONY: package
46-
package:
51+
define INSTALL_PACKAGE_SCRIPT
52+
set -euo pipefail
53+
if [ "$${#packages[@]}" -eq 0 ]; then
54+
echo "No ${package_name} package found"
55+
exit 1
56+
fi
57+
if [ "$${#packages[@]}" -eq 0 ]; then
58+
echo "Found more than two files for ${package_name}: $${packages[@]}"
59+
exit 1
60+
fi
61+
package=$${packages[0]}
62+
if [[ "$$package" == *"$.deb" ]]; then
63+
sudo dpkg -i "$$package";
64+
elif [[ "$$package" == *"$.pkg" ]]; then
65+
sudo installer -pkg "$$pkg" -target $(INSTALL_TARGET)
66+
elif [[ "$$package" == *"$.rpm" ]]; then
67+
if command -v dnf >/dev/null 2>&1; then
68+
sudo dnf -y install "$$package"
69+
elif command -v yum >/dev/null 2>&1; then
70+
sudo yum -y install "$$package"
71+
elif command -v zypper >/dev/null 2>&1; then
72+
sudo zypper --non-interactive install "$$package"
73+
else
74+
sudo rpm -Uvh "$$package"
75+
fi
76+
else
77+
echo "$$package has unknown package type"
78+
fi
79+
endef
80+
81+
build-package:
4782
cmake -S . -B $(BUILD_DIR) $(CMAKE_GENERATOR_FLAG) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) $(CMAKE_INSTALL_PREFIX_FLAG)
4883
cmake --build $(BUILD_DIR) --config $(BUILD_TYPE)
4984
for generator in $(CPACK_GENERATORS); do \
50-
(cd $(BUILD_DIR) && cpack -G $$generator -C $(BUILD_TYPE)); \
85+
(cd $(BUILD_DIR) && cpack -G $$generator -C $(BUILD_TYPE));\
5186
done
5287

53-
.PHONY: install-pkg
54-
install-pkg:
55-
set -euo pipefail; \
56-
shopt -s nullglob; \
57-
packages=($(BUILD_DIR)/scylla-cpp-driver-smoke-app-*-macos*.pkg);\
58-
if [ "$${#packages[@]}" -eq 0 ]; then \
59-
echo "No smoke-test productbuild packages produced"; \
60-
exit 1; \
61-
fi; \
62-
for pkg in "$${packages[@]}"; do \
63-
sudo installer -pkg "$$pkg" -target $(INSTALL_TARGET); \
64-
done
88+
install-app-pkg:
89+
@shopt -s nullglob
90+
packages=($(BUILD_DIR)/scylla-cpp-driver-smoke-app-*.pkg)
91+
package_nane="some-test-app PKG"
92+
${INSTALL_PACKAGE_SCRIPT}
93+
94+
install-app-deb:
95+
@shopt -s nullglob
96+
packages=($(BUILD_DIR)/scylla-cpp-driver-smoke-app*.deb)
97+
package_nane="some-test-app DEB"
98+
${INSTALL_PACKAGE_SCRIPT}
99+
100+
install-app-rpm:
101+
@shopt -s nullglob
102+
packages=($(BUILD_DIR)/scylla-cpp-driver-smoke-app*.rpm)
103+
package_nane="some-test-app RPM"
104+
${INSTALL_PACKAGE_SCRIPT}
65105

66106
install-driver-dev-deb:
67-
@shopt -s nullglob;\
68-
DRIVER_PACKAGES=(${MAKEFILE_PATH}/../../build/*-dev*.deb);\
69-
if [ "$${#DRIVER_PACKAGES[@]}" -eq 0 ]; then \
70-
echo "No driver dev DEB packages found";\
71-
exit 1;\
72-
elif [ "$${#DRIVER_PACKAGES[@]}" -ne 1 ]; then \
73-
echo "Move than one dev DEB packages were found: ${DRIVER_PACKAGES[@]}";\
74-
exit 1;\
75-
fi;\
76-
echo "Installing DEB package $${DRIVER_PACKAGES[0]}";\
77-
sudo dpkg -i "$${DRIVER_PACKAGES[0]}"
107+
@shopt -s nullglob
108+
packages=(${MAKEFILE_PATH}/../../build/*-dev*.deb)
109+
package_nane="scylla-rs-driver dev DEB"
110+
${INSTALL_PACKAGE_SCRIPT}
78111

79112
install-driver-deb:
80-
@shopt -s extglob;\
81-
@DRIVER_PACKAGES=!(${MAKEFILE_PATH}/../../build/*-dev*.deb);\
82-
if [ "$${#DRIVER_PACKAGES[@]}" -eq 0 ]; then \
83-
echo "No driver dev DEB packages found";\
84-
exit 1;\
85-
elif [ "$${#DRIVER_PACKAGES[@]}" -ne 1 ]; then \
86-
echo "Move than one dev DEB packages were found: ${DRIVER_PACKAGES[@]}";\
87-
exit 1;\
88-
fi;\
89-
echo "Installing DEB package $${DRIVER_PACKAGES[0]}";\
90-
sudo dpkg -i "$${DRIVER_PACKAGES[0]}"
91-
92-
.PHONY: install-deb
93-
install-deb:
94-
set -euo pipefail; \
95-
shopt -s nullglob; \
96-
packages=($(BUILD_DIR)/*.deb); \
97-
if [ "$${#packages[@]}" -eq 0 ]; then \
98-
echo "No smoke-test DEB packages produced"; \
99-
exit 1; \
100-
fi; \
101-
sudo dpkg -i "$${packages[@]}"; \
102-
sudo apt-get install -f -y
103-
104-
.install-package-macos-pkg:
105-
packages=(build/*.pkg)
106-
if [ "${#packages[@]}" -eq 0 ]; then
107-
echo "No driver pkg packages produced"
108-
exit 1
109-
fi
110-
for pkg in "${packages[@]}"; do
111-
sudo installer -pkg "$pkg" -target /
113+
@shopt -s nullglob;
114+
packages=();
115+
for pkg in ${MAKEFILE_PATH}/../../build/*.deb; do
116+
if [[ "$$pkg" == *-dev*.deb ]]; then
117+
continue
118+
fi
119+
packages+=("$$pkg")
112120
done
121+
package_nane="scylla-rs-driver DEB"
122+
${INSTALL_PACKAGE_SCRIPT}
113123

114-
.install-package-linux-deb:
115-
packages=(build/*.pkg)
116-
if [ "${#packages[@]}" -eq 0 ]; then
117-
echo "No driver pkg packages produced"
118-
exit 1
119-
fi
120-
for pkg in "${packages[@]}"; do
121-
sudo installer -pkg "$pkg" -target /
122-
done
124+
install-driver-dev-rpm:
125+
@shopt -s nullglob
126+
packages=(${MAKEFILE_PATH}/../../build/*-cpp_driver-dev.rpm)
127+
package_nane="scylla-rs-driver dev RPM"
128+
${INSTALL_PACKAGE_SCRIPT}
123129

124-
ifeq ($(OS_TYPE),macos)
125-
.install-package: .install-package-macos-pkg
126-
else ifeq ($(OS_TYPE),windows)
127-
.install-package:
128-
else
129-
.install-package:
130-
endif
130+
install-driver-rpm:
131+
@shopt -s nullglob
132+
packages=(${MAKEFILE_PATH}/../../build/*-cpp_driver.rpm)
133+
package_nane="scylla-rs-driver RPM"
134+
${INSTALL_PACKAGE_SCRIPT}
135+
136+
install-driver-dev-pkg:
137+
@shopt -s nullglob
138+
packages=(${MAKEFILE_PATH}/../../build/*-scylla_cpp_driver-dev.pkg)
139+
package_nane="scylla-rs-driver dev PKG"
140+
${INSTALL_PACKAGE_SCRIPT}
141+
142+
install-driver-pkg:
143+
@shopt -s nullglob
144+
packages=(${MAKEFILE_PATH}/../../build/*-scylla_cpp_driver.pkg)
145+
package_nane="scylla-rs-driver PKG"
146+
${INSTALL_PACKAGE_SCRIPT}
147+
148+
#ifeq ($(OS_TYPE),macos)
149+
#.install-package: .install-package-macos-pkg
150+
#else ifeq ($(OS_TYPE),windows)
151+
#.install-package:
152+
#else
153+
#.install-package:
154+
#endif
131155

132156
test-package: .prepare-for-test
133157
@cleanup() {\

0 commit comments

Comments
 (0)