Zack Cerza [Mon, 3 Nov 2025 22:51:08 +0000 (15:51 -0700)]
ceph-dev-pipeline: Mark several vars as Fields
When variables are defined using 'def' at the top level of a Jenkinsfile, they
are added to the scope local to the generated pipeline function. When they
are defined as Fields, they are instead marked as instance variables of the
encompassing class. As a result, they do not increase the size of the function,
avoiding the MethodTooLargeException. A tradeoff is that their values reset if a
pipeline run is restarted midway, but that's not a feature we are using.
Casey Bodley [Tue, 4 Nov 2025 17:03:00 +0000 (12:03 -0500)]
ceph-dev-pipeline: WITH_BOOST_VALGRIND is not specific to releases
the corresponding logic from scripts/build_utils.sh, added in
https://github.com/ceph/ceph-build/pull/2043, was not specific to
release builds
the rgw team needs this enabled for all packages tested in ci, because
we rely heavily on valgrind coverage. the rgw suite has been an absolute
mess of valgrind issues lately, and this appears to be the primary cause
David Galloway [Fri, 3 Oct 2025 16:36:46 +0000 (12:36 -0400)]
sync-pull: Check for all distro/ver subdirs and create if necessary
The previous logic was fine for the first time a release was sync-pulled as long as that new release doesn't have a new RPM distro/distrover.
e.g., New tentacle release, old logic saw there was no tentacle-21.0.0 dir and created debian/jessie and centos/9 subdirs. But we later needed to add rocky/10 and create a rocky/10 subdir. But the logic saw tentacle-21.0.0 so didn't create it.
Signed-off-by: David Galloway <david.galloway@ibm.com>
Joseph Mundackal [Thu, 16 Oct 2025 23:55:05 +0000 (19:55 -0400)]
Update ceph-website-prs.yml to comment with website link on success
it seems like this was commented out to reduce noisy comments on website site pr's.
Right now the workflow is to go look at the jenkins job console output and find the link. So having a update comment saying the site has been successfully built and can be view at xxx is a better workflow.
build-with-container.py's build containers are named ceph_build.
If something happens to a build and the container is left behind,
we can't start another. Force-remove it at the beginning of a job.
Dan Mick [Wed, 1 Oct 2025 02:23:34 +0000 (19:23 -0700)]
builder.yml: make playbook more flexible for finding templates
Many things are relative to 'playbook_dir', but some people
keep a symlink to examples/builder.yml and some don't. I can't
think of a way to fix, say, the module library path 'library/',
but I can make it better for templates.
Dan Mick [Wed, 1 Oct 2025 02:20:44 +0000 (19:20 -0700)]
builder.yml: update to use virtualenv
pip/python no longer like to install modules in global dirs.
Create a virtualenv and use it when running the jenkins_node
module.
This is done by adding a second play to start that creates the
virtualenv and sets ansible_python_interpreter to the interpreter
in the venv. That means it affects the following play in the
playbook, which is the original playbook. So technically the
virtualenv python is used for all plays.
Also, remove the #!/usr/bin/python3 from library/jenkins_node,
which was doing no good, but caused havoc by execing the non-venv
python when running the module.
Dan Mick [Tue, 7 Oct 2025 17:15:49 +0000 (10:15 -0700)]
ceph-build-pull-requsts: unpin urllib3
It probably shouldn't have been pinned to a specific version
anyway, but because it had custom import code, it broke with
the Python in noble (3.13 I think). Removing the pin gets
a version without the problem (I think the custom import
code went away altogether).
Dan Mick [Fri, 3 Oct 2025 23:14:27 +0000 (16:14 -0700)]
ceph-pull-requests*: require node with centos9 or noble
When containerized, we need a newer podman. Limit to these
nodes for now; eventually that will cover almost every node
as we transition to noble from jammy.
John Mulligan [Wed, 12 Mar 2025 20:36:49 +0000 (16:36 -0400)]
ceph-pull-requests-arm64: convert job to run make check in a container
Convert the test script to run make check using the
build-with-container.py tool. Converts env vars that were directly
passed to the script to use a env file.
Remove the redundant n_test_jobs variable since it is *always* the
same as n_build_jobs.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
John Mulligan [Wed, 12 Mar 2025 20:37:19 +0000 (16:37 -0400)]
ceph-pull-requests: convert job to run make check in a container
Convert the test script to run make check using the
build-with-container.py tool. Converts env vars that were directly
passed to the script to use a env file.
Updates the timeout to 4hour (to match the arm64 job) and avoid timeouts.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Dan Mick [Thu, 25 Sep 2025 20:58:38 +0000 (13:58 -0700)]
Update jenkins-job-builder spec to released version
jenkins-job-builder finally released 6.4.3, which includes
https://review.opendev.org/c/jjb/jenkins-job-builder/+/941310,
so we can stop using the git url
Dan Mick [Tue, 23 Sep 2025 02:28:14 +0000 (19:28 -0700)]
scripts/build_utils.sh: only do gcc ppa version dance on Ubuntu
This doesn't apply to debian. Maybe debian has similar needs,
but who knows, because we don't test the builds (or indeed
even do them until release time), but this code is definitely
not appropriate for bookworm, so avoid it for now.
We do a shallow clone, but I have seen a few branches that fail because the
clone is _too_ shallow. In rare cases like this we can simply deepen until we
find the tag.
If sccache is supposed to be enabled, but isn't - for example due to the feature
not being backported - we were still attempting to archive, and hanging. Check
for the existence of the file directly.