From 220529c74a0304d02dab9f2c86a799714b4e82d1 Mon Sep 17 00:00:00 2001 From: Torsten Wierschin Date: Wed, 7 Oct 2026 12:07:34 +0000 Subject: [PATCH] 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 --- .../qt6-migrated-legatus/new_docker_build.sh | 51 ++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/qt6-after/qt6-migrated-legatus/new_docker_build.sh b/qt6-after/qt6-migrated-legatus/new_docker_build.sh index b3d1081a0..7f5a88f84 100755 --- a/qt6-after/qt6-migrated-legatus/new_docker_build.sh +++ b/qt6-after/qt6-migrated-legatus/new_docker_build.sh @@ -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 \