52 lines
2.1 KiB
Bash
52 lines
2.1 KiB
Bash
#!/usr/bin/env bash
|
|
#
|
|
# Build an LTS DEB package for Ubuntu 26.04
|
|
# Migrated from jenkins_builder.sh (openSUSE) to Ubuntu/DEB ecosystem
|
|
#
|
|
# Required environment (set by the Jenkinsfile or `docker run -e ...`):
|
|
# PROJECT LTS flavor: qatar | ahtc | guez (cmake -D_pname)
|
|
# OS_VERSION Ubuntu version, e.g. 26.04
|
|
# LTS_VERSION Major.minor LTS version, e.g. 1.0
|
|
# GUEZ_MODE ON | OFF — cmake -DGUEZ_MODE
|
|
# WORKSPACE Jenkins workspace path (set automatically by Jenkins)
|
|
# PROJECT_BASE_DIR Path used by make_rpm_ubuntu26.py as the source tree
|
|
# BUILD_NUMBER Jenkins build number (used as release in DEB version)
|
|
# BUILD_TAG Jenkins build tag
|
|
#
|
|
|
|
set -eo pipefail
|
|
|
|
: "${PROJECT:?PROJECT must be set}"
|
|
: "${OS_VERSION:?OS_VERSION must be set}"
|
|
: "${LTS_VERSION:?LTS_VERSION must be set}"
|
|
: "${GUEZ_MODE:?GUEZ_MODE must be set}"
|
|
: "${WORKSPACE:?WORKSPACE must be set}"
|
|
: "${PROJECT_BASE_DIR:?PROJECT_BASE_DIR must be set}"
|
|
|
|
echo "Building LTS ${LTS_VERSION}-${BUILD_NUMBER:-?} DEB for project '${PROJECT}' (Ubuntu ${OS_VERSION})."
|
|
echo "PROJECT_BASE_DIR=${PROJECT_BASE_DIR}"
|
|
|
|
# Set up builder user environment (running as root in container)
|
|
export HOME=/home/builder
|
|
mkdir -p "${HOME}"
|
|
|
|
# Stage workspace as a clean copy under PROJECT_BASE_DIR
|
|
rm -rf "${PROJECT_BASE_DIR}"
|
|
mkdir -p "${PROJECT_BASE_DIR}"
|
|
tar --exclude='./rpms' --exclude='./.git' --exclude='./build' --exclude='./deb_build_tmp' \
|
|
-cf - -C "${WORKSPACE}" . | tar -xf - -C "${PROJECT_BASE_DIR}"
|
|
|
|
export VERSION_DATE
|
|
VERSION_DATE=$(date +%Y-%m-%d)
|
|
|
|
# Output is isolated per OS version so parallel OS builds of the same project
|
|
cd "${WORKSPACE}/rpmbuild"
|
|
python3 make_rpm_ubuntu26.py -c LTS \
|
|
--project_name "${PROJECT}" \
|
|
--version "${LTS_VERSION}" \
|
|
--output_dir "${WORKSPACE}/rpms/${PROJECT}/${OS_VERSION}/" \
|
|
--cmake_build_flags "-DUSE_IPO=ON -DUSE_UNITY_BUILD=ON -DGUEZ_MODE=${GUEZ_MODE} -DBUILD_WLS=ON -DPostgreSQL_TYPE_INCLUDE_DIR=/usr/include/postgresql/" \
|
|
--build_number "${BUILD_NUMBER:-1}"
|
|
|
|
echo "DEB packages produced for '${PROJECT}' (Ubuntu ${OS_VERSION}):"
|
|
ls -lhR "${WORKSPACE}/rpms/${PROJECT}/${OS_VERSION}/" |