Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/jenkins-ci-rme
2026-10-15 20:43:46 +02:00
..
2026-10-15 20:43:46 +02:00
2026-10-15 20:43:46 +02:00
2026-10-15 20:43:46 +02:00
2026-10-15 20:43:46 +02:00
2026-10-15 20:43:46 +02:00

jenkins-ci-rme — release pipeline for the Qt6 validation-scope branch

In-tree copy of the Jenkins CI flow, adapted so the release pipeline depends only on files inside this source tree:

File Purpose
Jenkinsfile Jenkins entry point (job script path jenkins-ci-rme/Jenkinsfile): job properties/parameters, build node, checkout with submodules, then loads jenkins-ci-rme/jenkins/Jenkinsfile
jenkins/Jenkinsfile Build body (per OS version, sequentially): install the prebuilt image from legatus-qt6_1.0.tar.gz when missing, run the builder inside the container, coverage, publish the DEBs to the artifact repo
jenkins_builder_ubuntu26.sh Runs inside the build container: stages the workspace, runs the in-tree rpmbuild/make_rpm_ubuntu26.py, copies the DEBs to the packages-out mount
jenkins_publisher_ubuntu26.sh Runs on the Jenkins agent: uploads the DEBs from ${WORKSPACE}/rpms/${PROJECT}/${OS_VERSION}/ to the internal artifact repository
release-16-10-2026.sh Local driver: the same flow without Jenkins, through the in-tree new_docker_build.sh

Not included (superseded)

  • jenkins_builder.sh / jenkins_publisher.sh — openSUSE/RPM flow, not used by this branch (DEB/Ubuntu 26.04 only)
  • Dockerfile-15.1 / Dockerfile-ubuntu26.04 / Dockerfile-ubuntu26-qt6 — old image recipes; the prebuilt build image is built from the in-tree Dockerfile (one level up)
  • jenkins_notifier.sh — Bitbucket build-status notification, not part of this project

Adaptations vs. the outer-repo copy

  • Packaging uses the in-tree rpmbuild/make_rpm_ubuntu26.py (was ${WORKSPACE}/rpmbuild from the outer repo)
  • The prebuilt build image legatus-qt6:1.0 ships in the repo as legatus-qt6_1.0.tar.gz (repo root); Jenkins docker loads it only when the image is not installed on the agent yet, and never builds it
  • MIGRATE_PIPELINE_ROOT is no longer needed: new_docker_build.sh derives it from its own location
  • DEB output path: ${WORKSPACE}/rpms/${PROJECT}/${OS_VERSION}/ (Jenkins convention); the packages-out copy is skipped when that directory is the make_rpm output dir (same device:inode guard as in new_docker_build.sh)
  • Publisher uploads ${WORKSPACE}/rpms/${PROJECT}/${OS_VERSION}/ directly — make_rpm_ubuntu26.py writes the DEBs there without a TDS subfolder
  • The post-publish Cleanup stage was dropped: the DEBs are kept under ${WORKSPACE}/rpms/... (the documented output location)

Local run

cd "DLBO Qt6"
bash ./jenkins-ci-rme/release-16-10-2026.sh
# DEBs: <repo-root>/rpms/guez/26.04/

Jenkins setup

The job SCM is the DLBO Qt6 repository; the script path is jenkins-ci-rme/Jenkinsfile, which loads jenkins-ci-rme/jenkins/Jenkinsfile. Required Jenkins credential: internal-repo-uploader (username/password for the artifact repository).