From 04311dbd006ef9e1fa144725a44243554cde3a44 Mon Sep 17 00:00:00 2001 From: Matan Breizman Date: Sun, 23 Nov 2025 13:41:42 +0200 Subject: [PATCH 1/3] Introduce "debug" flavor Currently, the only flavor used for testing is "default". While this ensures that the tested flavor matches the released flavor, it can also be a limitation. Introducing a debug flavor would allow us to test branches that require additional or more thorough validation. The main difference is that built-in assertions would be compiled in. The reasons for this change are: a) The Crimson suite uses a crimson-debug flavor for project PR gating. The next commit will clean up the Crimson flavor entirely, and the new debug flavor introduced here could be used as its replacement. b) Good practice: having an additional build with debug enabled is useful when retesting or performing extra checks. Initially, the new debug flavor will only apply to centos9 builds. If it proves valuable, we can expand support to other distros. Note: The current way to schedule debug builds is by using a *-debug branch name. Having a dedicated flavor seems more straightforward. Signed-off-by: Matan Breizman --- .../config/definitions/ceph-dev-cron.yml | 16 ++++++++++++ .../definitions/ceph-dev-new-trigger.yml | 26 ++++++++++++++++++- .../config/definitions/ceph-dev-new.yml | 3 ++- ceph-dev-pipeline/build/Jenkinsfile | 10 ++++--- .../config/definitions/ceph-dev-pipeline.yml | 5 ++-- ceph-dev/config/definitions/ceph-dev.yml | 3 ++- ceph-trigger-build/README.md | 2 +- ceph-trigger-build/build/Jenkinsfile | 13 +++++++--- scripts/build_utils.sh | 3 +++ 9 files changed, 69 insertions(+), 12 deletions(-) diff --git a/ceph-dev-cron/config/definitions/ceph-dev-cron.yml b/ceph-dev-cron/config/definitions/ceph-dev-cron.yml index 51fd9df69..126f0b522 100644 --- a/ceph-dev-cron/config/definitions/ceph-dev-cron.yml +++ b/ceph-dev-cron/config/definitions/ceph-dev-cron.yml @@ -77,6 +77,7 @@ # build tentacle on: # default: noble jammy centos9 windows # crimson: centos9 + # debug: centos9 - conditional-step: condition-kind: regex-match regex: .*tentacle.* @@ -100,10 +101,18 @@ DISTROS=centos9 FLAVOR=crimson-debug ARCHS=x86_64 + - project: 'ceph-dev' + predefined-parameters: | + BRANCH=${{GIT_BRANCH}} + FORCE=True + DISTROS=centos9 + FLAVOR=debug + ARCHS=x86_64 # build main on: # default: noble jammy centos9 windows # crimson-debug: centos9 # crimson-release: centos9 + # debug: centos9 - conditional-step: condition-kind: regex-match regex: .*main.* @@ -134,6 +143,13 @@ DISTROS=centos9 FLAVOR=crimson-release ARCHS=x86_64 + - project: 'ceph-dev' + predefined-parameters: | + BRANCH=${{GIT_BRANCH}} + FORCE=True + DISTROS=centos9 + FLAVOR=debug + ARCHS=x86_64 wrappers: - inject-passwords: diff --git a/ceph-dev-new-trigger/config/definitions/ceph-dev-new-trigger.yml b/ceph-dev-new-trigger/config/definitions/ceph-dev-new-trigger.yml index 924c38fe5..08ac50e5e 100644 --- a/ceph-dev-new-trigger/config/definitions/ceph-dev-new-trigger.yml +++ b/ceph-dev-new-trigger/config/definitions/ceph-dev-new-trigger.yml @@ -69,6 +69,7 @@ # build tentacle on: # default: noble jammy centos9 windows # crimson: centos9 + # debug: centos9 - conditional-step: condition-kind: regex-match regex: .*tentacle.* @@ -92,6 +93,13 @@ DISTROS=centos9 FLAVOR=crimson-debug ARCHS=x86_64 + - project: 'ceph-dev-new' + predefined-parameters: | + BRANCH=${{GIT_BRANCH}} + FORCE=True + DISTROS=centos9 + FLAVOR=debug + ARCHS=x86_64 # If no release name is found in branch, build on all possible distro/flavor combos (except xenial, bionic, focal). # regex matching and 'on-evaluation-failure: run' doesn't work here so triple negative it is. - conditional-step: @@ -118,7 +126,15 @@ DISTROS=centos9 FLAVOR=crimson-debug ARCHS=x86_64 - # build only centos9, no crimson + - trigger-builds: + - project: 'ceph-dev-new' + predefined-parameters: | + BRANCH=${{GIT_BRANCH}} + FORCE=True + DISTROS=centos9 + FLAVOR=debug + ARCHS=x86_64 + # build only centos9, default and debug. no crimson - conditional-step: condition-kind: regex-match regex: .*centos9-only.* @@ -136,6 +152,14 @@ FORCE=True DISTROS=centos9 ARCHS=x86_64 + - trigger-builds: + - project: 'ceph-dev-new' + predefined-parameters: | + BRANCH=${{GIT_BRANCH}} + FORCE=True + DISTROS=centos9 + FLAVOR=debug + ARCHS=x86_64 # Build only the `crimson` flavour, don't waste resources on the default one. # Useful for the crimson's bug-hunt at Sepia # crimson-debug: centos9 diff --git a/ceph-dev-new/config/definitions/ceph-dev-new.yml b/ceph-dev-new/config/definitions/ceph-dev-new.yml index 0f8db9a4e..5dd08d481 100644 --- a/ceph-dev-new/config/definitions/ceph-dev-new.yml +++ b/ceph-dev-new/config/definitions/ceph-dev-new.yml @@ -51,10 +51,11 @@ name: FLAVOR choices: - default + - debug - crimson-debug - crimson-release default: "default" - description: "Type of Ceph build, choices are: crimson-debug, crimson-release, default. Defaults to: 'default'" + description: "Type of Ceph build, choices are: crimson-debug, crimson-release, debug, default. Defaults to: 'default'" - string: name: CI_CONTAINER diff --git a/ceph-dev-pipeline/build/Jenkinsfile b/ceph-dev-pipeline/build/Jenkinsfile index 9ee521be6..5f683aa42 100644 --- a/ceph-dev-pipeline/build/Jenkinsfile +++ b/ceph-dev-pipeline/build/Jenkinsfile @@ -200,15 +200,16 @@ pipeline { } axes { name 'FLAVOR' - values 'default', 'crimson-release', 'crimson-debug' + values 'default', 'crimson-release', 'crimson-debug', 'debug' } } // crimson is only supported on centos9 x86_64 + // debug flavor is currently only supported on centos9 x86_64 excludes { exclude { axis { name 'FLAVOR' - values 'crimson-release', 'crimson-debug' + values 'crimson-release', 'crimson-debug', 'debug' } axis { name 'DIST' @@ -218,7 +219,7 @@ pipeline { exclude { axis { name 'FLAVOR' - values 'crimson-release', 'crimson-debug' + values 'crimson-release', 'crimson-debug', 'debug' } axis { name 'ARCH' @@ -449,6 +450,9 @@ pipeline { ceph_extra_cmake_args += " -DWITH_STATIC_LIBSTDCXX=ON" } break + case "debug": + ceph_extra_cmake_args += " -DCMAKE_BUILD_TYPE=Debug" + break case "crimson-debug": deb_build_profiles = "pkg.ceph.crimson" ceph_extra_cmake_args += " -DCMAKE_BUILD_TYPE=Debug" diff --git a/ceph-dev-pipeline/config/definitions/ceph-dev-pipeline.yml b/ceph-dev-pipeline/config/definitions/ceph-dev-pipeline.yml index 2995d087a..7fd10050a 100644 --- a/ceph-dev-pipeline/config/definitions/ceph-dev-pipeline.yml +++ b/ceph-dev-pipeline/config/definitions/ceph-dev-pipeline.yml @@ -46,7 +46,7 @@ - string: name: FLAVORS - description: "A list of flavors to build. Available options are: default, crimson-release, crimson-debug" + description: "A list of flavors to build. Available options are: default, crimson-release, crimson-debug, debug" default: "default" - bool: @@ -70,8 +70,9 @@ - default - crimson-debug - crimson-release + - debug default: "default" - description: "Type of Ceph build, choices are: crimson-debug, crimson-release, default. Defaults to: 'default'" + description: "Type of Ceph build, choices are: crimson-debug, crimson-release, default, debug. Defaults to: 'default'" - bool: name: CI_CONTAINER diff --git a/ceph-dev/config/definitions/ceph-dev.yml b/ceph-dev/config/definitions/ceph-dev.yml index 4801a6208..c9319338a 100644 --- a/ceph-dev/config/definitions/ceph-dev.yml +++ b/ceph-dev/config/definitions/ceph-dev.yml @@ -53,10 +53,11 @@ If this is checked, then the binaries will be built and pushed to chacra even if name: FLAVOR choices: - default + - debug - crimson-debug - crimson-release default: "default" - description: "Type of Ceph build, choices are: crimson-debug, crimson-release, default. Defaults to: 'default'" + description: "Type of Ceph build, choices are: crimson-debug, crimson-release, debug, default. Defaults to: 'default'" - bool: name: CI_CONTAINER diff --git a/ceph-trigger-build/README.md b/ceph-trigger-build/README.md index 1896b2ae8..9d9bd59a6 100644 --- a/ceph-trigger-build/README.md +++ b/ceph-trigger-build/README.md @@ -19,7 +19,7 @@ This pipeline's role is to: |CEPH-BUILD-JOB|Which Jenkins job to trigger. Only ceph-dev-pipeline supports the options below.|ceph-dev-pipeline, ceph-dev-new|`ceph-dev-pipeline`| |DISTROS|Space-sparated list of Linux distributions to build for|focal, jammy, noble, centos9, windows|Depends on keywords in branch name| |ARCHS|Space-separated list of architectures to build on|x86_64, arm64|`x86_64 arm64`| -|FLAVORS|Crimson or non-Crimson|default, crimson-debug, crimson-release|`default`| +|FLAVORS|Crimson or non-Crimson or debug|default, debug, crimson-debug, crimson-release|`default`| |CI-COMPILE|Compile binaries and packages[^1]|Boolean|`true`| |CI-CONTAINER|Build a dev container using the packages built|Boolean|`true`| |DWZ|Use [DWZ](https://sourceware.org/dwz/) to make debuginfo packages smaller|Boolean|`true` when using ceph-dev-new
`false` when using ceph-dev-pipeline[^2]| diff --git a/ceph-trigger-build/build/Jenkinsfile b/ceph-trigger-build/build/Jenkinsfile index eb7286bd6..8e86d260d 100644 --- a/ceph-trigger-build/build/Jenkinsfile +++ b/ceph-trigger-build/build/Jenkinsfile @@ -58,15 +58,21 @@ def params_from_branch(initialParams) { params << params[0].clone() params[-1]['ARCHS'] = 'x86_64' params[-1]['DISTROS'] = 'centos9' - params[-1]['FLAVOR'] = 'crimson-debug' + params[-1]['FLAVOR'] = 'crimson-debug debug' } else { params[0]['ARCHS'] += ' arm64' params[0]['FLAVOR'] += ' crimson-debug' + params[1]['FLAVOR'] += ' debug' } break case ~/.*centos9-only.*/: params[0]['DISTROS'] = 'centos9' - break + if ( !singleSet ) { + params << params[0].clone() + params[0]['FLAVOR'] = 'debug' + } else { + params[0]['FLAVOR'] += ' debug' + } case ~/.*crimson-only.*/: params[0]['ARCHS'] = 'x86_64' params[0]['DISTROS'] = 'centos9' @@ -83,9 +89,10 @@ def params_from_branch(initialParams) { params << params[0].clone() params[-1]['ARCHS'] = 'x86_64' params[-1]['DISTROS'] = 'centos9' - params[-1]['FLAVOR'] = 'crimson-debug' + params[-1]['FLAVOR'] = 'crimson-debug debug' } else { params[0]['FLAVOR'] += ' crimson-debug' + params[1]['FLAVOR'] += ' debug' } } if ( singleSet ) { diff --git a/scripts/build_utils.sh b/scripts/build_utils.sh index ca12b6790..57425bcbd 100755 --- a/scripts/build_utils.sh +++ b/scripts/build_utils.sh @@ -884,6 +884,9 @@ ceph_build_args_from_flavor() { CEPH_EXTRA_CMAKE_ARGS+=" -DWITH_SYSTEM_BOOST=OFF -DWITH_BOOST_VALGRIND=ON" DEB_BUILD_PROFILES="" ;; + debug) + CEPH_EXTRA_CMAKE_ARGS+=" -DCMAKE_BUILD_TYPE=Debug" + ;; crimson-debug) CEPH_EXTRA_RPMBUILD_ARGS="--with crimson" DEB_BUILD_PROFILES="pkg.ceph.crimson" From 0f0e4fd7dea0c06d855b93581e5b13cc0bf4c350 Mon Sep 17 00:00:00 2001 From: Matan Breizman Date: Sun, 23 Nov 2025 14:18:11 +0200 Subject: [PATCH 2/3] Cleanup "crimson" flavor With https://github.com/ceph/ceph/pull/66229 merged, Crimson is now included (though not used) by default in our RPM builds. This means the existing default flavor can also be used for Crimson testing by selecting Crimson as the default OSD package. Notes: * The previous workaround related to DWITH_STATIC_LIBSTDCXX is no longer relevant for Crimson (it was tied to older compiler issues). * The crimson-only branch name selection is also cleaned up, as centos9-only can now be used instead. * This change breaks Crimson Tentacle CI builds: The packaging update that includes Crimson in RPM builds was not backported to Tentacle. Tentacle builds would still require a dedicated flavor that enables WITH_CRIMSON However, since Crimson changes have not been backported to Tentacle (since the first RCA), there is no strong reason to keep building and testing the same Crimson HEAD. So we can use this opprtuinity to stop nightly Crimson/Tentacle builds and tests. See last Crimson tentacle run, (which is not expected to change): https://pulpito.ceph.com/teuthology-2025-11-22_22:56:11-crimson-rados-tentacle-distro-crimson-debug-smithi/ Signed-off-by: Matan Breizman --- .../config/definitions/ceph-dev-cron.yml | 24 --------- .../definitions/ceph-dev-new-trigger.yml | 50 +------------------ .../config/definitions/ceph-dev-new.yml | 4 +- ceph-dev-pipeline/build/Jenkinsfile | 16 ++---- .../config/definitions/ceph-dev-pipeline.yml | 6 +-- ceph-dev/config/definitions/ceph-dev.yml | 4 +- .../definitions/ceph-perf-pull-requests.yml | 5 +- ceph-trigger-build/README.md | 2 +- ceph-trigger-build/build/Jenkinsfile | 20 ++------ scripts/build_utils.sh | 28 +---------- 10 files changed, 17 insertions(+), 142 deletions(-) diff --git a/ceph-dev-cron/config/definitions/ceph-dev-cron.yml b/ceph-dev-cron/config/definitions/ceph-dev-cron.yml index 126f0b522..74409ef18 100644 --- a/ceph-dev-cron/config/definitions/ceph-dev-cron.yml +++ b/ceph-dev-cron/config/definitions/ceph-dev-cron.yml @@ -76,7 +76,6 @@ DISTROS=noble jammy centos9 windows # build tentacle on: # default: noble jammy centos9 windows - # crimson: centos9 # debug: centos9 - conditional-step: condition-kind: regex-match @@ -94,13 +93,6 @@ BRANCH=${{GIT_BRANCH}} FORCE=True DISTROS=noble jammy centos9 windows - - project: 'ceph-dev' - predefined-parameters: | - BRANCH=${{GIT_BRANCH}} - FORCE=True - DISTROS=centos9 - FLAVOR=crimson-debug - ARCHS=x86_64 - project: 'ceph-dev' predefined-parameters: | BRANCH=${{GIT_BRANCH}} @@ -110,8 +102,6 @@ ARCHS=x86_64 # build main on: # default: noble jammy centos9 windows - # crimson-debug: centos9 - # crimson-release: centos9 # debug: centos9 - conditional-step: condition-kind: regex-match @@ -129,20 +119,6 @@ BRANCH=${{GIT_BRANCH}} FORCE=True DISTROS=noble jammy centos9 windows - - project: 'ceph-dev' - predefined-parameters: | - BRANCH=${{GIT_BRANCH}} - FORCE=True - DISTROS=centos9 - FLAVOR=crimson-debug - ARCHS=x86_64 - - project: 'ceph-dev' - predefined-parameters: | - BRANCH=${{GIT_BRANCH}} - FORCE=True - DISTROS=centos9 - FLAVOR=crimson-release - ARCHS=x86_64 - project: 'ceph-dev' predefined-parameters: | BRANCH=${{GIT_BRANCH}} diff --git a/ceph-dev-new-trigger/config/definitions/ceph-dev-new-trigger.yml b/ceph-dev-new-trigger/config/definitions/ceph-dev-new-trigger.yml index 08ac50e5e..22fe1f806 100644 --- a/ceph-dev-new-trigger/config/definitions/ceph-dev-new-trigger.yml +++ b/ceph-dev-new-trigger/config/definitions/ceph-dev-new-trigger.yml @@ -68,7 +68,6 @@ DISTROS=noble jammy centos9 windows # build tentacle on: # default: noble jammy centos9 windows - # crimson: centos9 # debug: centos9 - conditional-step: condition-kind: regex-match @@ -86,13 +85,6 @@ BRANCH=${{GIT_BRANCH}} FORCE=True DISTROS=noble jammy centos9 windows - - project: 'ceph-dev-new' - predefined-parameters: | - BRANCH=${{GIT_BRANCH}} - FORCE=True - DISTROS=centos9 - FLAVOR=crimson-debug - ARCHS=x86_64 - project: 'ceph-dev-new' predefined-parameters: | BRANCH=${{GIT_BRANCH}} @@ -105,7 +97,7 @@ - conditional-step: condition-kind: shell condition-command: | - echo "${{GIT_BRANCH}}" | grep -v '\(reef\|squid\|tentacle\|centos9-only\|crimson-only\)' + echo "${{GIT_BRANCH}}" | grep -v '\(reef\|squid\|tentacle\|centos9-only\)' on-evaluation-failure: dont-run steps: - shell: @@ -118,14 +110,6 @@ BRANCH=${{GIT_BRANCH}} FORCE=True DISTROS=noble jammy centos9 windows - - trigger-builds: - - project: 'ceph-dev-new' - predefined-parameters: | - BRANCH=${{GIT_BRANCH}} - FORCE=True - DISTROS=centos9 - FLAVOR=crimson-debug - ARCHS=x86_64 - trigger-builds: - project: 'ceph-dev-new' predefined-parameters: | @@ -134,7 +118,7 @@ DISTROS=centos9 FLAVOR=debug ARCHS=x86_64 - # build only centos9, default and debug. no crimson + # build only centos9, default and debug - conditional-step: condition-kind: regex-match regex: .*centos9-only.* @@ -160,36 +144,6 @@ DISTROS=centos9 FLAVOR=debug ARCHS=x86_64 - # Build only the `crimson` flavour, don't waste resources on the default one. - # Useful for the crimson's bug-hunt at Sepia - # crimson-debug: centos9 - # crimson-release: centos9 - - conditional-step: - condition-kind: regex-match - regex: .*crimson-only.* - label: '${{GIT_BRANCH}}' - on-evaluation-failure: dont-run - steps: - - shell: - !include-raw-verbatim: - - ../../../scripts/build_utils.sh - - ../../build/notify - - trigger-builds: - - project: 'ceph-dev-new' - predefined-parameters: | - BRANCH=${{GIT_BRANCH}} - FORCE=True - DISTROS=centos9 - FLAVOR=crimson-debug - ARCHS=x86_64 - - trigger-builds: - - project: 'ceph-dev-new' - predefined-parameters: | - BRANCH=${{GIT_BRANCH}} - FORCE=True - DISTROS=centos9 - FLAVOR=crimson-release - ARCHS=x86_64 # sccache - conditional-step: condition-kind: regex-match diff --git a/ceph-dev-new/config/definitions/ceph-dev-new.yml b/ceph-dev-new/config/definitions/ceph-dev-new.yml index 5dd08d481..e708f6fe1 100644 --- a/ceph-dev-new/config/definitions/ceph-dev-new.yml +++ b/ceph-dev-new/config/definitions/ceph-dev-new.yml @@ -52,10 +52,8 @@ choices: - default - debug - - crimson-debug - - crimson-release default: "default" - description: "Type of Ceph build, choices are: crimson-debug, crimson-release, debug, default. Defaults to: 'default'" + description: "Type of Ceph build, choices are: default, debug. Defaults to: 'default'" - string: name: CI_CONTAINER diff --git a/ceph-dev-pipeline/build/Jenkinsfile b/ceph-dev-pipeline/build/Jenkinsfile index 5f683aa42..94d047a1c 100644 --- a/ceph-dev-pipeline/build/Jenkinsfile +++ b/ceph-dev-pipeline/build/Jenkinsfile @@ -200,16 +200,15 @@ pipeline { } axes { name 'FLAVOR' - values 'default', 'crimson-release', 'crimson-debug', 'debug' + values 'default', 'debug' } } - // crimson is only supported on centos9 x86_64 // debug flavor is currently only supported on centos9 x86_64 excludes { exclude { axis { name 'FLAVOR' - values 'crimson-release', 'crimson-debug', 'debug' + values 'debug' } axis { name 'DIST' @@ -219,7 +218,7 @@ pipeline { exclude { axis { name 'FLAVOR' - values 'crimson-release', 'crimson-debug', 'debug' + values 'debug' } axis { name 'ARCH' @@ -378,7 +377,6 @@ pipeline { sh """#!/bin/bash set -ex echo > .env - [[ $FLAVOR == crimson* ]] && echo "WITH_CRIMSON=true" >> .env || true cd dist/ceph python3 src/script/build-with-container.py --env-file=${env.WORKSPACE}/.env --image-repo=${env.CEPH_BUILDER_IMAGE} --tag=${ceph_builder_tag} --image-variant=packages -d ${DIST} -e build-container podman tag ${env.CEPH_BUILDER_IMAGE}:${ceph_builder_tag} ${env.CEPH_BUILDER_IMAGE}:${ceph_builder_tag_short} @@ -453,13 +451,6 @@ pipeline { case "debug": ceph_extra_cmake_args += " -DCMAKE_BUILD_TYPE=Debug" break - case "crimson-debug": - deb_build_profiles = "pkg.ceph.crimson" - ceph_extra_cmake_args += " -DCMAKE_BUILD_TYPE=Debug" - break - case "crimson-release": - deb_build_profiles = "pkg.ceph.crimson"; - break default: println "FLAVOR=${env.FLAVOR} is invalid" assert false @@ -481,7 +472,6 @@ pipeline { if ( env.SCCACHE == "true" ) rpmbuild_args += " -R--with=sccache" if ( env.DWZ == "false" ) rpmbuild_args += " -R--without=dwz" if ( env.FLAVOR == "default" ) rpmbuild_args += " -R--with=tcmalloc" - if ( env.FLAVOR.startsWith("crimson") ) rpmbuild_args += " -R--with=crimson" bwc_command = "${bwc_command}${rpmbuild_args} -e rpm" } else if ( env.DIST =~ /suse|sles/ ) { throw new Exception("bwc not implemented for ${env.DIST}") diff --git a/ceph-dev-pipeline/config/definitions/ceph-dev-pipeline.yml b/ceph-dev-pipeline/config/definitions/ceph-dev-pipeline.yml index 7fd10050a..fc014c396 100644 --- a/ceph-dev-pipeline/config/definitions/ceph-dev-pipeline.yml +++ b/ceph-dev-pipeline/config/definitions/ceph-dev-pipeline.yml @@ -46,7 +46,7 @@ - string: name: FLAVORS - description: "A list of flavors to build. Available options are: default, crimson-release, crimson-debug, debug" + description: "A list of flavors to build. Available options are: default, debug" default: "default" - bool: @@ -68,11 +68,9 @@ name: FLAVOR choices: - default - - crimson-debug - - crimson-release - debug default: "default" - description: "Type of Ceph build, choices are: crimson-debug, crimson-release, default, debug. Defaults to: 'default'" + description: "Type of Ceph build, choices are: default, debug. Defaults to: 'default'" - bool: name: CI_CONTAINER diff --git a/ceph-dev/config/definitions/ceph-dev.yml b/ceph-dev/config/definitions/ceph-dev.yml index c9319338a..031ed32c8 100644 --- a/ceph-dev/config/definitions/ceph-dev.yml +++ b/ceph-dev/config/definitions/ceph-dev.yml @@ -54,10 +54,8 @@ If this is checked, then the binaries will be built and pushed to chacra even if choices: - default - debug - - crimson-debug - - crimson-release default: "default" - description: "Type of Ceph build, choices are: crimson-debug, crimson-release, debug, default. Defaults to: 'default'" + description: "Type of Ceph build, choices are: default, debug. Defaults to: 'default'" - bool: name: CI_CONTAINER diff --git a/ceph-perf-pull-requests/config/definitions/ceph-perf-pull-requests.yml b/ceph-perf-pull-requests/config/definitions/ceph-perf-pull-requests.yml index 60834deea..318fff655 100644 --- a/ceph-perf-pull-requests/config/definitions/ceph-perf-pull-requests.yml +++ b/ceph-perf-pull-requests/config/definitions/ceph-perf-pull-requests.yml @@ -65,7 +65,7 @@ break fi done - if test {osd-flavor} = "crimson-release" ; then + if test {osd-flavor} = "crimson" ; then export WITH_CRIMSON=true # TODO use clang-10 on ubuntu/focal timeout 7200 src/script/run-make.sh \ @@ -246,8 +246,7 @@ - project: name: ceph-perf osd-flavor: - - crimson-debug - - crimson-release - classic + - crimson jobs: - ceph-perf-{osd-flavor} diff --git a/ceph-trigger-build/README.md b/ceph-trigger-build/README.md index 9d9bd59a6..8837539fb 100644 --- a/ceph-trigger-build/README.md +++ b/ceph-trigger-build/README.md @@ -19,7 +19,7 @@ This pipeline's role is to: |CEPH-BUILD-JOB|Which Jenkins job to trigger. Only ceph-dev-pipeline supports the options below.|ceph-dev-pipeline, ceph-dev-new|`ceph-dev-pipeline`| |DISTROS|Space-sparated list of Linux distributions to build for|focal, jammy, noble, centos9, windows|Depends on keywords in branch name| |ARCHS|Space-separated list of architectures to build on|x86_64, arm64|`x86_64 arm64`| -|FLAVORS|Crimson or non-Crimson or debug|default, debug, crimson-debug, crimson-release|`default`| +|FLAVORS|default or debug|default, debug|`default`| |CI-COMPILE|Compile binaries and packages[^1]|Boolean|`true`| |CI-CONTAINER|Build a dev container using the packages built|Boolean|`true`| |DWZ|Use [DWZ](https://sourceware.org/dwz/) to make debuginfo packages smaller|Boolean|`true` when using ceph-dev-new
`false` when using ceph-dev-pipeline[^2]| diff --git a/ceph-trigger-build/build/Jenkinsfile b/ceph-trigger-build/build/Jenkinsfile index 8e86d260d..4fd531612 100644 --- a/ceph-trigger-build/build/Jenkinsfile +++ b/ceph-trigger-build/build/Jenkinsfile @@ -58,11 +58,10 @@ def params_from_branch(initialParams) { params << params[0].clone() params[-1]['ARCHS'] = 'x86_64' params[-1]['DISTROS'] = 'centos9' - params[-1]['FLAVOR'] = 'crimson-debug debug' + params[-1]['FLAVOR'] = 'debug' } else { params[0]['ARCHS'] += ' arm64' - params[0]['FLAVOR'] += ' crimson-debug' - params[1]['FLAVOR'] += ' debug' + params[0]['FLAVOR'] += ' debug' } break case ~/.*centos9-only.*/: @@ -73,26 +72,15 @@ def params_from_branch(initialParams) { } else { params[0]['FLAVOR'] += ' debug' } - case ~/.*crimson-only.*/: - params[0]['ARCHS'] = 'x86_64' - params[0]['DISTROS'] = 'centos9' - if ( !singleSet ) { - params << params[0].clone() - params[0]['FLAVOR'] = 'crimson-debug' - params[1]['FLAVOR'] = 'crimson-release' - } else { - params[0]['FLAVOR'] = 'crimson-debug crimson-release' - } break default: if ( !singleSet ) { params << params[0].clone() params[-1]['ARCHS'] = 'x86_64' params[-1]['DISTROS'] = 'centos9' - params[-1]['FLAVOR'] = 'crimson-debug debug' + params[-1]['FLAVOR'] = 'debug' } else { - params[0]['FLAVOR'] += ' crimson-debug' - params[1]['FLAVOR'] += ' debug' + params[0]['FLAVOR'] += ' debug' } } if ( singleSet ) { diff --git a/scripts/build_utils.sh b/scripts/build_utils.sh index 57425bcbd..3c8b1f7c8 100755 --- a/scripts/build_utils.sh +++ b/scripts/build_utils.sh @@ -887,15 +887,6 @@ ceph_build_args_from_flavor() { debug) CEPH_EXTRA_CMAKE_ARGS+=" -DCMAKE_BUILD_TYPE=Debug" ;; - crimson-debug) - CEPH_EXTRA_RPMBUILD_ARGS="--with crimson" - DEB_BUILD_PROFILES="pkg.ceph.crimson" - CEPH_EXTRA_CMAKE_ARGS+=" -DCMAKE_BUILD_TYPE=Debug" - ;; - crimson-release) - CEPH_EXTRA_RPMBUILD_ARGS="--with crimson" - DEB_BUILD_PROFILES="pkg.ceph.crimson" - ;; *) echo "unknown FLAVOR: ${FLAVOR}" >&2 exit 1 @@ -1041,14 +1032,7 @@ EOF extra_cmake_args() { # statically link against libstdc++ for building new releases on old distros - if [ "${FLAVOR}" = "crimson-debug" ] || [ "${FLAVOR}" = "crimson-release" ] ; then - # seastar's exception hack assums dynamic linkage against libgcc. as - # otherwise _Unwind_RaiseException will conflict with its counterpart - # defined in libgcc_eh.a, when the linker comes into play. and more - # importantly, _Unwind_RaiseException() in seastar will not be able - # to call the one implemented by GCC. - echo "-DWITH_STATIC_LIBSTDCXX=OFF" - elif use_ppa; then + if use_ppa; then echo "-DWITH_STATIC_LIBSTDCXX=ON" fi } @@ -1502,16 +1486,6 @@ setup_rpm_build_deps() { sed -e 's/@//g' < ceph.spec.in > $DIR/ceph.spec - # enable more build depends required by build flavor(crimson) - case "${FLAVOR}" in - crimson-debug) - sed -i -e 's/%bcond_with crimson/%bcond_without crimson/g' $DIR/ceph.spec - ;; - crimson-release) - sed -i -e 's/%bcond_with crimson/%bcond_without crimson/g' $DIR/ceph.spec - ;; - esac - # Make sure we have all the rpm macros installed and at the latest version # before installing the dependencies, python3-devel requires the # python-rpm-macro we use for identifying the python related dependencies From b7141eb16c6fc360535ba56b058f6a79828364f1 Mon Sep 17 00:00:00 2001 From: Matan Breizman Date: Tue, 16 Dec 2025 12:52:07 +0200 Subject: [PATCH 3/3] ceph-dev-new-setup/build: Introduce crimson-tentacle builds See the following comment: ``` Tentacle is the last release that needs dedicated Crimson builds, Later releases are able to use Crimson with the default build. As the "Crimson flavor" is no longer available, we need a *temporary* way to be able build Crimson for tentacle. Note: This could be removed once Crimson we have Umbrella release builds. ``` Signed-off-by: Matan Breizman --- ceph-dev-new-setup/build/build | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ceph-dev-new-setup/build/build b/ceph-dev-new-setup/build/build index ad568118d..a3623bb71 100644 --- a/ceph-dev-new-setup/build/build +++ b/ceph-dev-new-setup/build/build @@ -86,6 +86,17 @@ else printf 'No cmake debug options added to branch %s.\n' "$BRANCH" fi +# Tentacle is the last release that needs dedicated Crimson builds, +# Later releases are able to use Crimson with the default build. +# As the "Crimson flavor" is no longer available, we need a *temporary* way +# to be able build Crimson for tentacle. +# Note: This could be removed once Crimson we have Umbrella release builds. +if [[ "$BRANCH" == *-crimson-tentacle ]]; then + CEPH_EXTRA_RPMBUILD_ARGS="--with crimson" + CEPH_EXTRA_CMAKE_ARGS+=" -DWITH_CRIMSON=true" + printf 'Added Crimson Tentacle cmake configs to branch %s. CEPH_EXTRA_CMAKE_ARGS: %s\n' "$BRANCH" "$CEPH_EXTRA_CMAKE_ARGS" +fi + ceph_build_args_from_flavor ${FLAVOR} mkdir -p release