Adds rpm/deb package building option
This commit is contained in:
1 file changed
+105
@@ -103,6 +103,14 @@ Environment variable overrides:
|
|||||||
DELETE_PREBUILT_IMAGE=ON|OFF
|
DELETE_PREBUILT_IMAGE=ON|OFF
|
||||||
DOCKER_IMAGE=<image-name>
|
DOCKER_IMAGE=<image-name>
|
||||||
|
|
||||||
|
Jenkins builder options (for RPM/DEB package production):
|
||||||
|
--run-jenkins-builder Run jenkins_builder_ubuntu26.sh inside container to produce packages
|
||||||
|
--package-output-dir DIR Directory to mount for package output (default: ./packages-out)
|
||||||
|
--lts-version VERSION LTS version for package (default: 1.0)
|
||||||
|
--project NAME Project name for package (default: guez)
|
||||||
|
--build-number NUM Build number for package (default: 1)
|
||||||
|
--build-tag TAG Build tag for package (default: manual-build)
|
||||||
|
|
||||||
Required .envrc variable:
|
Required .envrc variable:
|
||||||
MIGRATE_PIPELINE_ROOT=<absolute-path>
|
MIGRATE_PIPELINE_ROOT=<absolute-path>
|
||||||
|
|
||||||
@@ -129,6 +137,19 @@ Defaults:
|
|||||||
RUN_CTEST=ON Release: ON (tests in Lts/Common + Z components)
|
RUN_CTEST=ON Release: ON (tests in Lts/Common + Z components)
|
||||||
TESTS_ONLY=OFF
|
TESTS_ONLY=OFF
|
||||||
INTEGRATION_TEST=OFF
|
INTEGRATION_TEST=OFF
|
||||||
|
VERIFY_RPM=OFF
|
||||||
|
USE_PREBUILT_IMAGE=OFF
|
||||||
|
BUILD_PREBUILT_IMAGE=OFF
|
||||||
|
DELETE_PREBUILT_IMAGE=OFF
|
||||||
|
DOCKER_IMAGE=legatus-qt6-prebuilt:latest
|
||||||
|
RUN_JENKINS_BUILDER=OFF
|
||||||
|
PACKAGE_OUTPUT_DIR=./packages-out
|
||||||
|
LTS_VERSION=1.0
|
||||||
|
PROJECT=guez
|
||||||
|
GUEZ_MODE=ON
|
||||||
|
BUILD_NUMBER=1
|
||||||
|
BUILD_TAG=manual-build
|
||||||
|
INTEGRATION_TEST=OFF
|
||||||
VERIFY_RPM=OFF Release: OFF (optional package verification)
|
VERIFY_RPM=OFF Release: OFF (optional package verification)
|
||||||
USE_PREBUILT_IMAGE=OFF
|
USE_PREBUILT_IMAGE=OFF
|
||||||
BUILD_PREBUILT_IMAGE=OFF
|
BUILD_PREBUILT_IMAGE=OFF
|
||||||
@@ -273,6 +294,11 @@ APT_PACKAGES=(
|
|||||||
vlc-plugin-base
|
vlc-plugin-base
|
||||||
git
|
git
|
||||||
python3-pip
|
python3-pip
|
||||||
|
# Packaging tools for RPM/DEB build
|
||||||
|
rpm
|
||||||
|
debhelper
|
||||||
|
dpkg-dev
|
||||||
|
fakeroot
|
||||||
)
|
)
|
||||||
|
|
||||||
# INTERFACE libraries (header-only) are built automatically as dependencies
|
# INTERFACE libraries (header-only) are built automatically as dependencies
|
||||||
@@ -738,6 +764,14 @@ INTEGRATION_TEST="${INTEGRATION_TEST:-OFF}"
|
|||||||
USE_PREBUILT_IMAGE="${USE_PREBUILT_IMAGE:-OFF}"
|
USE_PREBUILT_IMAGE="${USE_PREBUILT_IMAGE:-OFF}"
|
||||||
BUILD_PREBUILT_IMAGE="${BUILD_PREBUILT_IMAGE:-OFF}"
|
BUILD_PREBUILT_IMAGE="${BUILD_PREBUILT_IMAGE:-OFF}"
|
||||||
DELETE_PREBUILT_IMAGE="${DELETE_PREBUILT_IMAGE:-OFF}"
|
DELETE_PREBUILT_IMAGE="${DELETE_PREBUILT_IMAGE:-OFF}"
|
||||||
|
# Jenkins builder options for RPM/DEB package production
|
||||||
|
RUN_JENKINS_BUILDER="${RUN_JENKINS_BUILDER:-OFF}"
|
||||||
|
PACKAGE_OUTPUT_DIR="${PACKAGE_OUTPUT_DIR:-./packages-out}"
|
||||||
|
LTS_VERSION="${LTS_VERSION:-1.0}"
|
||||||
|
PROJECT="${PROJECT:-guez}"
|
||||||
|
GUEZ_MODE="${GUEZ_MODE:-ON}"
|
||||||
|
BUILD_NUMBER="${BUILD_NUMBER:-1}"
|
||||||
|
BUILD_TAG="${BUILD_TAG:-manual-build}"
|
||||||
export QT_VERSION="${QT_VERSION:-6.10.2}"
|
export QT_VERSION="${QT_VERSION:-6.10.2}"
|
||||||
export QT_ARCH="${QT_ARCH:-linux_gcc_64}"
|
export QT_ARCH="${QT_ARCH:-linux_gcc_64}"
|
||||||
# aqtinstall uses 'linux_gcc_64' but creates directory 'gcc_64'
|
# aqtinstall uses 'linux_gcc_64' but creates directory 'gcc_64'
|
||||||
@@ -879,6 +913,34 @@ while [[ $# -gt 0 ]]; do
|
|||||||
[[ $# -gt 0 ]] || die "--cmake_build_flags requires a flag string"
|
[[ $# -gt 0 ]] || die "--cmake_build_flags requires a flag string"
|
||||||
CMAKE_BUILD_FLAGS="$1"
|
CMAKE_BUILD_FLAGS="$1"
|
||||||
;;
|
;;
|
||||||
|
--run-jenkins-builder)
|
||||||
|
RUN_JENKINS_BUILDER=ON
|
||||||
|
;;
|
||||||
|
--package-output-dir)
|
||||||
|
shift
|
||||||
|
[[ $# -gt 0 ]] || die "--package-output-dir requires a directory path"
|
||||||
|
PACKAGE_OUTPUT_DIR="$1"
|
||||||
|
;;
|
||||||
|
--lts-version)
|
||||||
|
shift
|
||||||
|
[[ $# -gt 0 ]] || die "--lts-version requires a version string"
|
||||||
|
LTS_VERSION="$1"
|
||||||
|
;;
|
||||||
|
--project)
|
||||||
|
shift
|
||||||
|
[[ $# -gt 0 ]] || die "--project requires a project name"
|
||||||
|
PROJECT="$1"
|
||||||
|
;;
|
||||||
|
--build-number)
|
||||||
|
shift
|
||||||
|
[[ $# -gt 0 ]] || die "--build-number requires a build number"
|
||||||
|
BUILD_NUMBER="$1"
|
||||||
|
;;
|
||||||
|
--build-tag)
|
||||||
|
shift
|
||||||
|
[[ $# -gt 0 ]] || die "--build-tag requires a build tag"
|
||||||
|
BUILD_TAG="$1"
|
||||||
|
;;
|
||||||
-h|--help)
|
-h|--help)
|
||||||
usage
|
usage
|
||||||
exit 0
|
exit 0
|
||||||
@@ -1427,6 +1489,41 @@ else
|
|||||||
log_info "Skipping CTest"
|
log_info "Skipping CTest"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Jenkins builder execution (optional - produces RPM/DEB packages)
|
||||||
|
if [[ "${RUN_JENKINS_BUILDER}" == "ON" ]]; then
|
||||||
|
log_info "=== Jenkins Builder Execution (RPM/DEB Package Production) ==="
|
||||||
|
|
||||||
|
# Set up environment variables for jenkins_builder_ubuntu26.sh
|
||||||
|
export OS_VERSION=$(cat /etc/os-release | grep "^VERSION_ID=" | cut -d'"' -f2)
|
||||||
|
export WORKSPACE=/workspace
|
||||||
|
export PROJECT_BASE_DIR=/workspace
|
||||||
|
|
||||||
|
log_info "Running jenkins_builder_ubuntu26.sh 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 " WORKSPACE=${WORKSPACE}"
|
||||||
|
log_info " PROJECT_BASE_DIR=${PROJECT_BASE_DIR}"
|
||||||
|
log_info " BUILD_NUMBER=${BUILD_NUMBER}"
|
||||||
|
log_info " BUILD_TAG=${BUILD_TAG}"
|
||||||
|
|
||||||
|
# Execute jenkins_builder_ubuntu26.sh
|
||||||
|
if [[ -f "${MIGRATE_PIPELINE_ROOT}/jenkins-ci-rme/jenkins_builder_ubuntu26.sh" ]]; then
|
||||||
|
bash "${MIGRATE_PIPELINE_ROOT}/jenkins-ci-rme/jenkins_builder_ubuntu26.sh" || JENKINS_BUILDER_RESULT=$?
|
||||||
|
if [[ "${JENKINS_BUILDER_RESULT:-0}" -ne 0 ]]; then
|
||||||
|
log_info "Jenkins builder completed with errors (exit code: ${JENKINS_BUILDER_RESULT})"
|
||||||
|
else
|
||||||
|
log_info "Jenkins builder completed successfully"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
log_error "jenkins_builder_ubuntu26.sh not found at ${MIGRATE_PIPELINE_ROOT}/jenkins-ci-rme/jenkins_builder_ubuntu26.sh"
|
||||||
|
JENKINS_BUILDER_RESULT=1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
log_info "Skipping Jenkins builder execution"
|
||||||
|
fi
|
||||||
|
|
||||||
# RPM/DEB package verification (optional)
|
# RPM/DEB package verification (optional)
|
||||||
if [[ "${VERIFY_RPM}" == "ON" ]]; then
|
if [[ "${VERIFY_RPM}" == "ON" ]]; then
|
||||||
log_info "=== Package Verification (RPM/DEB) ==="
|
log_info "=== Package Verification (RPM/DEB) ==="
|
||||||
@@ -1500,6 +1597,13 @@ docker run --rm \
|
|||||||
-e INTEGRATION_TEST \
|
-e INTEGRATION_TEST \
|
||||||
-e VERIFY_RPM \
|
-e VERIFY_RPM \
|
||||||
-e USE_PREBUILT_IMAGE \
|
-e USE_PREBUILT_IMAGE \
|
||||||
|
-e RUN_JENKINS_BUILDER \
|
||||||
|
-e PACKAGE_OUTPUT_DIR \
|
||||||
|
-e LTS_VERSION \
|
||||||
|
-e PROJECT \
|
||||||
|
-e GUEZ_MODE \
|
||||||
|
-e BUILD_NUMBER \
|
||||||
|
-e BUILD_TAG \
|
||||||
-e CMAKE_BUILD_FLAGS \
|
-e CMAKE_BUILD_FLAGS \
|
||||||
-e QT_VERSION \
|
-e QT_VERSION \
|
||||||
-e QT_ARCH \
|
-e QT_ARCH \
|
||||||
@@ -1521,5 +1625,6 @@ docker run --rm \
|
|||||||
-v "${RTI_LICENSE_FILE_HOST}:/workspace/rti_license.dat" \
|
-v "${RTI_LICENSE_FILE_HOST}:/workspace/rti_license.dat" \
|
||||||
-v "${MIGRATE_PIPELINE_ROOT}/external:/workspace/external:ro" \
|
-v "${MIGRATE_PIPELINE_ROOT}/external:/workspace/external:ro" \
|
||||||
-v "${CONTAINER_SCRIPT_HOST}:/tmp/run-build-inside-container.sh:ro" \
|
-v "${CONTAINER_SCRIPT_HOST}:/tmp/run-build-inside-container.sh:ro" \
|
||||||
|
-v "${PACKAGE_OUTPUT_DIR}:/workspace/packages-out" \
|
||||||
"${DOCKER_IMAGE}" \
|
"${DOCKER_IMAGE}" \
|
||||||
bash /tmp/run-build-inside-container.sh
|
bash /tmp/run-build-inside-container.sh
|
||||||
Reference in new issue
Block a user