diff --git a/ceph-dev-cron/config/definitions/ceph-dev-cron.yml b/ceph-dev-cron/config/definitions/ceph-dev-cron.yml index 51fd9df69..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,7 @@ DISTROS=noble jammy centos9 windows # build tentacle on: # default: noble jammy centos9 windows - # crimson: centos9 + # debug: centos9 - conditional-step: condition-kind: regex-match regex: .*tentacle.* @@ -98,12 +98,11 @@ BRANCH=${{GIT_BRANCH}} FORCE=True DISTROS=centos9 - FLAVOR=crimson-debug + 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.* @@ -125,14 +124,7 @@ 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 + FLAVOR=debug ARCHS=x86_64 wrappers: 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 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..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,7 @@ DISTROS=noble jammy centos9 windows # build tentacle on: # default: noble jammy centos9 windows - # crimson: centos9 + # debug: centos9 - conditional-step: condition-kind: regex-match regex: .*tentacle.* @@ -90,14 +90,14 @@ BRANCH=${{GIT_BRANCH}} FORCE=True DISTROS=centos9 - FLAVOR=crimson-debug + 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: 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: @@ -116,9 +116,9 @@ BRANCH=${{GIT_BRANCH}} FORCE=True DISTROS=centos9 - FLAVOR=crimson-debug + FLAVOR=debug ARCHS=x86_64 - # build only centos9, no crimson + # build only centos9, default and debug - conditional-step: condition-kind: regex-match regex: .*centos9-only.* @@ -136,35 +136,13 @@ FORCE=True DISTROS=centos9 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 + FLAVOR=debug ARCHS=x86_64 # sccache - conditional-step: diff --git a/ceph-dev-new/config/definitions/ceph-dev-new.yml b/ceph-dev-new/config/definitions/ceph-dev-new.yml index 0f8db9a4e..e708f6fe1 100644 --- a/ceph-dev-new/config/definitions/ceph-dev-new.yml +++ b/ceph-dev-new/config/definitions/ceph-dev-new.yml @@ -51,10 +51,9 @@ name: FLAVOR choices: - 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: default, debug. Defaults to: 'default'" - string: name: CI_CONTAINER diff --git a/ceph-dev-pipeline/build/Jenkinsfile b/ceph-dev-pipeline/build/Jenkinsfile index 9ee521be6..94d047a1c 100644 --- a/ceph-dev-pipeline/build/Jenkinsfile +++ b/ceph-dev-pipeline/build/Jenkinsfile @@ -200,15 +200,15 @@ pipeline { } axes { name 'FLAVOR' - values 'default', 'crimson-release', 'crimson-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' + values 'debug' } axis { name 'DIST' @@ -218,7 +218,7 @@ pipeline { exclude { axis { name 'FLAVOR' - values 'crimson-release', 'crimson-debug' + values 'debug' } axis { name 'ARCH' @@ -377,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} @@ -449,13 +448,9 @@ pipeline { ceph_extra_cmake_args += " -DWITH_STATIC_LIBSTDCXX=ON" } break - case "crimson-debug": - deb_build_profiles = "pkg.ceph.crimson" + case "debug": 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 @@ -477,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 2995d087a..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" + description: "A list of flavors to build. Available options are: default, debug" default: "default" - bool: @@ -68,10 +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. 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 4801a6208..031ed32c8 100644 --- a/ceph-dev/config/definitions/ceph-dev.yml +++ b/ceph-dev/config/definitions/ceph-dev.yml @@ -53,10 +53,9 @@ If this is checked, then the binaries will be built and pushed to chacra even if name: FLAVOR choices: - 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: 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 1896b2ae8..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|default, 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 eb7286bd6..4fd531612 100644 --- a/ceph-trigger-build/build/Jenkinsfile +++ b/ceph-trigger-build/build/Jenkinsfile @@ -58,24 +58,19 @@ 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'] = 'debug' } else { params[0]['ARCHS'] += ' arm64' - params[0]['FLAVOR'] += ' crimson-debug' + params[0]['FLAVOR'] += ' debug' } break case ~/.*centos9-only.*/: - params[0]['DISTROS'] = 'centos9' - break - 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' + params[0]['FLAVOR'] = 'debug' } else { - params[0]['FLAVOR'] = 'crimson-debug crimson-release' + params[0]['FLAVOR'] += ' debug' } break default: @@ -83,9 +78,9 @@ 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'] = 'debug' } else { - params[0]['FLAVOR'] += ' crimson-debug' + params[0]['FLAVOR'] += ' debug' } } if ( singleSet ) { diff --git a/scripts/build_utils.sh b/scripts/build_utils.sh index ca12b6790..3c8b1f7c8 100755 --- a/scripts/build_utils.sh +++ b/scripts/build_utils.sh @@ -884,15 +884,9 @@ ceph_build_args_from_flavor() { CEPH_EXTRA_CMAKE_ARGS+=" -DWITH_SYSTEM_BOOST=OFF -DWITH_BOOST_VALGRIND=ON" DEB_BUILD_PROFILES="" ;; - crimson-debug) - CEPH_EXTRA_RPMBUILD_ARGS="--with crimson" - DEB_BUILD_PROFILES="pkg.ceph.crimson" + debug) 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 @@ -1038,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 } @@ -1499,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