David Galloway [Wed, 20 Aug 2025 21:45:14 +0000 (17:45 -0400)]
ceph-source-dist: Support for ceph-release-pipeline
Again, the changes needed here are:
- For a Release Build, we are building a tarball based off a
version commit that has been created by the ceph-tag job
then pushed to ceph-releases.git. So instead of taking
the BRANCH from an upstream Jenkins job, we're reading
the version commit SHA1 from the sha1.txt file that ceph-tag
wrote then checking /that/ out and building the tarball from it.
So some var writing and reading was shuffled around.
- We do not want this job to support checking out from ceph-private.git
or ceph-releases.git directly. Instead, if ceph-release-pipeline
passed RELEASE_BUILD=true, only then can you clone from those private
repos. So we override CEPH_REPO and set chacra_url to the chacra
instance that doesn't automatically prune repos (chacra.ceph.com).
Signed-off-by: David Galloway <david.galloway@ibm.com>
David Galloway [Wed, 20 Aug 2025 21:22:21 +0000 (17:22 -0400)]
ceph-tag: Write a sha1 file for later consumption
In a regular build, ceph-dev-pipeline just takes a branch name and makes a source tarball in ceph-source-dist. ceph-dev-pipeline takes that tarball from the ceph-source-dist job and builds from it so it's able to just get the SHA1 from it.
In a /release/ build, a release branch (e.g., reef-release) is specified and we add an additional version commit on top of it. So we don't know the SHA1 just based on the branch name. My solution was to write the version commit's SHA1 to a file and consume it later.
Signed-off-by: David Galloway <david.galloway@ibm.com>
Zack Cerza [Thu, 21 Aug 2025 17:02:12 +0000 (11:02 -0600)]
ceph-dev-pipeline: Improve podman cleanup
We're seeing a lot of instances of jobs failing to start due to left-over files
from the containerized build. When calling chown, reset the group as well. Also,
mention some details about the build to make log analysis easier.
Ilya Dryomov [Thu, 14 Aug 2025 09:59:58 +0000 (11:59 +0200)]
kernel: install bc
bc has been required for building the Linux kernel for a long time.
It was installed explicitly (albeit from the wrong script) in the deb
case, but not installed in the rpm case:
error: Failed build dependencies:
bc is needed by kernel-6.17.0_rc1_g0dccf5229fc7-1.x86_64
make[2]: *** [scripts/Makefile.package:75: binrpm-pkg] Error 11
Dan Mick [Tue, 29 Jul 2025 18:24:40 +0000 (11:24 -0700)]
Revert "removed build_utils dependency from ceph pull request job"
Jobs are using more than just the 'docs check' functions in
build_utils.sh (ssh_exec, get_nr_build_jobs are two that showed up
after merge). Revert this until it can be more-carefully evaluated.
Dan Mick [Mon, 28 Jul 2025 22:14:37 +0000 (15:14 -0700)]
sync-pull: in the 'ugly loop', skip nonexistent repos
This heuristic remains questionable, but continue it on
by allowing some named distro/version repos to not exist without
stopping sync-pull from working
error running container: from /usr/bin/crun creating container for
[<sh command>]: sd-bus call: Interactive authentication required.:
Permission denied
That is thought to be because of the lack of 'linger' on the
jenkins-build user, such that the /run/user directory didn't
persist. The exact mechanism of failure isn't fully understood,
but this script has fixed similar issues for ceph-dev-pipeline.
scripts/build_utils: setup_pbuilder_for_old_gcc() installs requested version
ubuntu noble is special in that we gcc-14 is available but gcc-13 is the
default. before using update-alternatives to prefer gcc-14, we need to
make sure it's installed
copy the relevant bit from setup_pbuilder_for_new_gcc()'s hook
D05install-new-gcc to make sure the requested version is installed
before running the D10update-gcc-alternatives hook
scripts/build_utils: default to gcc-14 for ubuntu noble
noble provides both gcc-13 and 14, but its gcc 13.2.0 suffers from an
LTO bug that causes ceph daemons to crash horribly (tracked in
https://tracker.ceph.com/issues/63867)
This fixes errors like:
RunRoot is pointing to a path (/run/user/$ID/containers) which is not writable. Most likely podman will fail.
Error: creating events dirs: mkdir /run/user/$ID: permission denied
Adam Kraitman [Tue, 24 Jun 2025 13:17:19 +0000 (16:17 +0300)]
Changes and fixes I have made to the builder.yml
- Installing java-21 insted of java-17(EOL)
- Stoping unattended-upgrades to avoid conflicts
- Refreshes the apt package cache to ensure the system has the latest package metadata before performing upgrades
- Upgrades all installed packages to their latest versions on debian based systems and cleans up unused dependencies and cached files
- Updates the package cache and upgrades all packages to their latest versions on redhat based systems
- Updates the package cache and upgrades all packages on suse based systems
- Fixing the task - "get github host key from github if necessary" that checks github_host_key == "" but since github_host_key is undefined, ansible throws an error
- Fixing the taks - "Install the systemd unit files for jenkins" by using playbook_dir for explicit path resolution
Signed-off-by: Adam Kraitman <akraitma@li-8b09b2cc-35b7-11b2-a85c-cd1dbade58f9.ibm.com>
Dan Mick [Wed, 18 Jun 2025 17:10:21 +0000 (10:10 -0700)]
sepia-fog-images: add image test to 'poll for deploy' loop
When checking for scheduled deploy tasks, check not only for existing
deploy tasks but for deploy tasks *for the image we're proposing to
capture*. There are often deploy tasks on a busy fog server, but we
only need to avoid affecting tasks for the image we're updating