From decb12181d339179728aac443246dafc543310a9 Mon Sep 17 00:00:00 2001 From: Torsten Wierschin Date: Thu, 12 Nov 2026 23:21:33 +0000 Subject: [PATCH] Add DEB packaging execution block for Release 2a - Added complete DEB packaging logic from reference script - Uses make_rpm_ubuntu26_release2.py with Release 2a filter - Stages workspace, runs package build, copies .deb files to packages-out - Triggered by --run-jenkins-builder flag Co-authored-by: Copilot <2235566219+Copilot@users.noreply.github.com> --- .../new_docker_build_release2.sh | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/qt6-after/qt6-migrated-legatus/new_docker_build_release2.sh b/qt6-after/qt6-migrated-legatus/new_docker_build_release2.sh index 94d07d818..882715753 100755 --- a/qt6-after/qt6-migrated-legatus/new_docker_build_release2.sh +++ b/qt6-after/qt6-migrated-legatus/new_docker_build_release2.sh @@ -780,6 +780,69 @@ if [[ "${RUN_CTEST}" == "ON" ]] && [[ "${TESTS_ONLY}" != "ON" ]]; then cd .. fi +# DEB Package Production (in-tree rpmbuild) +if [[ "${RUN_JENKINS_BUILDER}" == "ON" ]]; then + log_info "=== DEB Package Production (in-tree rpmbuild) ===" + + OS_VERSION=$(cat /etc/os-release | grep "^VERSION_ID=" | cut -d'"' -f2) + STAGE_DIR=/workspace/deb_stage + STAGED_SOURCE_DIR="${STAGE_DIR}" + + log_info "Staging workspace to ${STAGE_DIR}" + rm -rf "${STAGE_DIR}" + mkdir -p "${STAGE_DIR}" + tar --exclude='./rpms' --exclude='./.git' --exclude='./build' \ + --exclude='./deb_build_tmp' --exclude='./deb_stage' --exclude='./packages-out' \ + --exclude='./legatus-qt6_1.0.tar.gz' \ + -cf - -C /workspace . | tar -xf - -C "${STAGE_DIR}" + + if [[ ! -f "${STAGED_SOURCE_DIR}/CMakeLists.txt" || ! -f "${STAGED_SOURCE_DIR}/rpmbuild/make_rpm_ubuntu26_release2.py" ]]; then + log_error "Staged source incomplete under ${STAGED_SOURCE_DIR} (CMakeLists.txt or rpmbuild/make_rpm_ubuntu26_release2.py missing)" + exit 1 + fi + + log_info "Running ${STAGED_SOURCE_DIR}/rpmbuild/make_rpm_ubuntu26_release2.py with:" + log_info " PROJECT=${PROJECT}" + log_info " OS_VERSION=${OS_VERSION}" + log_info " LTS_VERSION=${LTS_VERSION}" + log_info " GUEZ_MODE=${GUEZ_MODE}" + log_info " BUILD_NUMBER=${BUILD_NUMBER}" + log_info " BUILD_TAG=${BUILD_TAG}" + + cd "${STAGED_SOURCE_DIR}/rpmbuild" + if python3 make_rpm_ubuntu26_release2.py -c LTS \ + --project_name "${PROJECT}" \ + --version "${LTS_VERSION}" \ + --output_dir "/workspace/rpms/${PROJECT}/${OS_VERSION}/" \ + --source_dir "${STAGED_SOURCE_DIR}" \ + --cmake_build_flags "-DUSE_IPO=ON -DUSE_UNITY_BUILD=ON -DGUEZ_MODE=${GUEZ_MODE} -DBUILD_WLS=ON -DPostgreSQL_TYPE_INCLUDE_DIR=/usr/include/postgresql/ -DRELEASE_BUILD=ON" \ + --build_number "${BUILD_NUMBER}" \ + --release_scope; then + log_info "Package build completed successfully" + else + log_error "Package build failed (exit code: $?)" + exit 1 + fi + + # Copy produced DEB packages to the packages-out + DEST_DIR=/workspace/packages-out + mkdir -p "${DEST_DIR}" + shopt -s nullglob + for deb in "/workspace/rpms/${PROJECT}/${OS_VERSION}/"*.deb; do + base="$(basename "${deb}")" + if [[ -e "${DEST_DIR}/${base}" ]] && + [[ "$(stat -c '%d:%i' "${deb}")" == "$(stat -c '%d:%i' "${DEST_DIR}/${base}")" ]]; then + continue + fi + cp -f "${deb}" "${DEST_DIR}/" + done + shopt -u nullglob + log_info "DEB packages available in ${DEST_DIR} (host: ${PACKAGE_OUTPUT_DIR:-unknown}):" + ls -lh "${DEST_DIR}/" +else + log_info "Skipping DEB package production" +fi + log_info "Release 2 build completed successfully!" ' )