Add --verify-rpm option for package verification in release builds

- Added VERIFY_RPM variable with default OFF
- Added --verify-rpm command line option
- Added package verification logic that checks for DEB/RPM packages
- Updated help text and documentation
- Verification runs after CTest in Docker container
- Checks /workspace/rpms for DEB packages and /workspace/build/rpm for RPM
- Reports success if packages found, skipped if no package build step
This commit is contained in:
torsten committed 2026-10-07 12:07:34 +00:00
1 parent 6b8f2efabb
commit 220529c74a
1 file changed
+50 -1
@@ -62,6 +62,7 @@ Test execution:
--no-ctest Skip ctest execution
--tests-only Run only ctest, skip all make build groups
--integration-test Run only integration tests (test_z_*, bld_*, tab_*, wls_*)
--verify-rpm Verify generated packages (RPM/DEB) after build (release builds only)
Prebuilt Docker image usage:
--use-prebuilt-image Use a Docker image with dependencies already installed
@@ -96,6 +97,7 @@ Environment variable overrides:
RUN_CTEST=ON|OFF (automatically ON for RELEASE_BUILD=ON - tests in Lts/Common + Z)
TESTS_ONLY=ON|OFF
INTEGRATION_TEST=ON|OFF
VERIFY_RPM=ON|OFF Verify generated packages (RPM/DEB) after build (release builds only)
USE_PREBUILT_IMAGE=ON|OFF
BUILD_PREBUILT_IMAGE=ON|OFF
DELETE_PREBUILT_IMAGE=ON|OFF
@@ -127,6 +129,7 @@ Defaults:
RUN_CTEST=ON Release: ON (tests in Lts/Common + Z components)
TESTS_ONLY=OFF
INTEGRATION_TEST=OFF
VERIFY_RPM=OFF Release: OFF (optional package verification)
USE_PREBUILT_IMAGE=OFF
BUILD_PREBUILT_IMAGE=OFF
DELETE_PREBUILT_IMAGE=OFF
@@ -849,6 +852,9 @@ while [[ $# -gt 0 ]]; do
--integration-test)
INTEGRATION_TEST=ON
;;
--verify-rpm)
VERIFY_RPM=ON
;;
--use-prebuilt-image)
USE_PREBUILT_IMAGE=ON
;;
@@ -899,6 +905,7 @@ BUILD_GROUP11="${BUILD_GROUP11:-OFF}"
RUN_CTEST="${RUN_CTEST:-ON}"
TESTS_ONLY="${TESTS_ONLY:-OFF}"
INTEGRATION_TEST="${INTEGRATION_TEST:-OFF}"
VERIFY_RPM="${VERIFY_RPM:-OFF}"
USE_PREBUILT_IMAGE="${USE_PREBUILT_IMAGE:-OFF}"
BUILD_PREBUILT_IMAGE="${BUILD_PREBUILT_IMAGE:-OFF}"
DELETE_PREBUILT_IMAGE="${DELETE_PREBUILT_IMAGE:-OFF}"
@@ -923,6 +930,7 @@ BUILD_VIEWER_ONLY="$(normalize_on_off "$BUILD_VIEWER_ONLY" "BUILD_VIEWER_ONLY")"
RUN_CTEST="$(normalize_on_off "$RUN_CTEST" "RUN_CTEST")"
TESTS_ONLY="$(normalize_on_off "$TESTS_ONLY" "TESTS_ONLY")"
INTEGRATION_TEST="$(normalize_on_off "$INTEGRATION_TEST" "INTEGRATION_TEST")"
VERIFY_RPM="$(normalize_on_off "$VERIFY_RPM" "VERIFY_RPM")"
USE_PREBUILT_IMAGE="$(normalize_on_off "$USE_PREBUILT_IMAGE" "USE_PREBUILT_IMAGE")"
BUILD_PREBUILT_IMAGE="$(normalize_on_off "$BUILD_PREBUILT_IMAGE" "BUILD_PREBUILT_IMAGE")"
DELETE_PREBUILT_IMAGE="$(normalize_on_off "$DELETE_PREBUILT_IMAGE" "DELETE_PREBUILT_IMAGE")"
@@ -938,7 +946,7 @@ fi
CMAKE_BUILD_FLAGS="${CMAKE_BUILD_FLAGS:-}"
# Export variables for Docker container
export BUILD_ALL BUILD_RTI BUILD_GRANTLEE BUILD_ARCGIS BUILD_CODIFICATION BUILD_GROUP1 BUILD_GROUP2 BUILD_GROUP3 BUILD_GROUP4 BUILD_GROUP5 BUILD_GROUP6 BUILD_GROUP7 BUILD_GROUP8 BUILD_GROUP9 BUILD_GROUP10 BUILD_GROUP11 BUILD_VIEWER_ONLY RUN_CTEST TESTS_ONLY INTEGRATION_TEST USE_PREBUILT_IMAGE BUILD_PREBUILT_IMAGE DELETE_PREBUILT_IMAGE DOCKER_IMAGE CMAKE_BUILD_FLAGS RELEASE_BUILD
export BUILD_ALL BUILD_RTI BUILD_GRANTLEE BUILD_ARCGIS BUILD_CODIFICATION BUILD_GROUP1 BUILD_GROUP2 BUILD_GROUP3 BUILD_GROUP4 BUILD_GROUP5 BUILD_GROUP6 BUILD_GROUP7 BUILD_GROUP8 BUILD_GROUP9 BUILD_GROUP10 BUILD_GROUP11 BUILD_VIEWER_ONLY RUN_CTEST TESTS_ONLY INTEGRATION_TEST VERIFY_RPM USE_PREBUILT_IMAGE BUILD_PREBUILT_IMAGE DELETE_PREBUILT_IMAGE DOCKER_IMAGE CMAKE_BUILD_FLAGS RELEASE_BUILD
# Group 5: Viewer module targets (conditional on BUILD_ARCGIS)
# Note: LtsFileDialog excluded from viewer-only builds due to Group 4 dependencies (svcExmCommon, svcOpmCommon, svcFlmCommon)
@@ -1413,6 +1421,46 @@ if [[ "${RUN_CTEST}" == "ON" ]]; then
else
log_info "Skipping CTest"
fi
# RPM/DEB package verification (optional)
if [[ "${VERIFY_RPM}" == "ON" ]]; then
log_info "=== Package Verification (RPM/DEB) ==="
# Check for generated packages in common output locations
PACKAGE_FOUND=0
# Check for DEB packages (jenkins_builder.sh output)
if [[ -d "/workspace/rpms" ]]; then
DEB_COUNT=$(find /workspace/rpms -name "*.deb" -type f 2>/dev/null | wc -l)
if [[ "${DEB_COUNT}" -gt 0 ]]; then
log_info "Found ${DEB_COUNT} DEB package(s):"
find /workspace/rpms -name "*.deb" -type f 2>/dev/null | while read -r deb_file; do
log_info " - $(basename "${deb_file}")"
done
PACKAGE_FOUND=1
fi
fi
# Check for RPM packages (rpmbuild output)
if [[ -d "/workspace/build/rpm" ]]; then
RPM_COUNT=$(find /workspace/build/rpm -name "*.rpm" -type f 2>/dev/null | wc -l)
if [[ "${RPM_COUNT}" -gt 0 ]]; then
log_info "Found ${RPM_COUNT} RPM package(s):"
find /workspace/build/rpm -name "*.rpm" -type f 2>/dev/null | while read -r rpm_file; do
log_info " - $(basename "${rpm_file}")"
done
PACKAGE_FOUND=1
fi
fi
if [[ "${PACKAGE_FOUND}" -eq 1 ]]; then
log_info "Package verification: SUCCESS"
else
log_info "No packages found (this is expected for CMake-only builds without jenkins_builder.sh)"
log_info "Package verification: SKIPPED (no package build step in this configuration)"
fi
else
log_info "Skipping package verification"
fi
EOF
chmod +x "${CONTAINER_SCRIPT_HOST}"
@@ -1445,6 +1493,7 @@ docker run --rm \
-e RUN_CTEST \
-e TESTS_ONLY \
-e INTEGRATION_TEST \
-e VERIFY_RPM \
-e USE_PREBUILT_IMAGE \
-e CMAKE_BUILD_FLAGS \
-e QT_VERSION \