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>
This commit is contained in:
1 file changed
+63
@@ -780,6 +780,69 @@ if [[ "${RUN_CTEST}" == "ON" ]] && [[ "${TESTS_ONLY}" != "ON" ]]; then
|
|||||||
cd ..
|
cd ..
|
||||||
fi
|
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!"
|
log_info "Release 2 build completed successfully!"
|
||||||
'
|
'
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in new issue
Block a user