]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-build.git/commitdiff
ceph-perf: fix github-check and use run-make.sh for clang-19 2626/head
authorKautilya Tripathi <kautilya.tripathi@ibm.com>
Tue, 23 Jun 2026 10:17:07 +0000 (15:47 +0530)
committerKautilya Tripathi <kautilya.tripathi@ibm.com>
Wed, 24 Jun 2026 03:20:42 +0000 (08:50 +0530)
github-check fails on fresh venvs with PyJWT 2.13+ because github3
passes app_id as int to jwt.encode(). Pin pyjwt<2.13 before installing
githubcheck, and quote app-id/install-id in github-check calls.

Stop probing for clang down to 18 in the perf job; Crimson needs
clang-19. Let run-make.sh install it via llvm.sh (get_llvm) and select
it with discover_compiler, same as make-check nodes.

Signed-off-by: Kautilya Tripathi <kautilya.tripathi@ibm.com>
ceph-perf-pull-requests/README.rst
ceph-perf-pull-requests/config/definitions/ceph-perf-pull-requests.yml

index a2ec012f81f88ba7fe4d71ebbe47e32a2feb1096..49849c92f8833cee6ff1bf39bcd1a9e49e5bbaae 100644 (file)
@@ -15,7 +15,8 @@ The ``ceph-perf`` project generates two freestyle jobs:
   (``crimson-osd`` via ``vstart.sh --crimson``)
 
 Both run on ``performance`` nodes, build ``ceph-main`` and the PR merge ref
-(``WITH_CRIMSON=ON``, ``vstart-base`` + ``crimson-osd``; clang-19+ or GCC/G++ 13+),
+(``WITH_CRIMSON=ON``, ``vstart-base`` + ``crimson-osd``; clang-19 via ``run-make.sh`` on Jenkins,
+same as make-check),
 execute the ``radosbench_4K_read.yaml`` workload from ``ceph-main``, and compare
 results with ``cbt/compare.py``. A GitHub check (``perf-test-{osd-flavor}``) is
 updated with the comparison report.
index 531b703cc999f54163238045e53232da1ac56e1e..f6e45b3e3279573c070857dc38994a021bdf780d 100644 (file)
           fi
           export NPROC=$(nproc)
           export FOR_MAKE_CHECK=true
+          export WITH_CRIMSON=true
           # Same Crimson-inclusive build as ceph-pull-requests (WITH_CRIMSON=true).
           # Classic vs crimson perf is selected at CBT runtime via run-cbt.sh.
-          # Crimson/Seastar needs a recent compiler: prefer clang-19+, and
-          # only fall back to GCC/G++ when the host has version 13+.
-          cxx_compiler=
-          c_compiler=
-          for i in $(seq 25 -1 19); do
-              if type -t clang-$i > /dev/null; then
-                  cxx_compiler="clang++-$i"
-                  c_compiler="clang-$i"
-                  break
-              fi
-          done
-          if test -z "$cxx_compiler"; then
-              gcc_major=$(gcc -dumpfullversion -dumpversion | cut -d. -f1)
-              gxx_major=$(g++ -dumpfullversion -dumpversion | cut -d. -f1)
-              if test "$gcc_major" -lt 13 || test "$gxx_major" -lt 13; then
-                  echo "Need clang-19+ or GCC/G++ 13+ for Crimson build (found gcc=$gcc_major g++=$gxx_major)" >&2
-                  exit 1
-              fi
-              cxx_compiler=g++
-              c_compiler=gcc
-          fi
-          export WITH_CRIMSON=true
-          cmake_args="-DCMAKE_CXX_COMPILER=$cxx_compiler -DCMAKE_C_COMPILER=$c_compiler -DCMAKE_BUILD_TYPE=Release -DWITH_CRIMSON=ON -DWITH_TESTS=OFF -DWITH_SPDK=OFF -DWITH_DPDK=OFF -DWITH_QATLIB=OFF -DWITH_QATZIP=OFF $CEPH_PERF_EXTRA_CMAKE_ARGS"
+          # Compiler: run-make.sh installs clang-19 on Jenkins (src/script/run-make.sh
+          # get_llvm) and selects it via discover_compiler — same as make-check nodes.
+          cmake_args="-DCMAKE_BUILD_TYPE=Release -DWITH_CRIMSON=ON -DWITH_TESTS=OFF -DWITH_SPDK=OFF -DWITH_DPDK=OFF -DWITH_QATLIB=OFF -DWITH_QATZIP=OFF $CEPH_PERF_EXTRA_CMAKE_ARGS"
           timeout 7200 src/script/run-make.sh \
             --cmake-args "$cmake_args" \
             vstart-base crimson-osd
             --owner {check-repo-owner}                   \
             --repo {check-repo-name}                     \
             --pkey-file ${{GITHUB_CHECK_PKEY_PEM}}       \
-            --app-id {check-app-id}                      \
-            --install-id {check-install-id}              \
+            --app-id "{check-app-id}"                    \
+            --install-id "{check-install-id}"            \
             --name {check-name}                          \
             --sha ${{ghprbActualCommit}}                 \
             --external-id ${{BUILD_ID}}                  \
           . /etc/os-release || ID=ubuntu
           case $ID in
           debian|ubuntu)
-              sudo env DEBIAN_FRONTEND=noninteractive apt-get install -y python3-yaml python3-lxml python3-prettytable python3-matplotlib cython3 clang
+              sudo env DEBIAN_FRONTEND=noninteractive apt-get install -y python3-yaml python3-lxml python3-prettytable python3-matplotlib cython3
               ;;
           centos|rhel)
               sudo dnf copr remove tchaikov/llvm-toolset-10 || true
           pip install setuptools
           pip install cython
           pip install -r ${{WORKSPACE}}/cbt/requirements.txt
+          # github3 passes app_id as int to PyJWT; 2.13+ requires iss to be str
+          pip install 'pyjwt<2.13'
           pip install git+https://github.com/ceph/githubcheck.git
           echo "please hold tight..." | github-check     \
             --owner {check-repo-owner}                   \
             --repo {check-repo-name}                     \
             --pkey-file ${{GITHUB_CHECK_PKEY_PEM}}       \
-            --app-id {check-app-id}                      \
-            --install-id {check-install-id}              \
+            --app-id "{check-app-id}"                    \
+            --install-id "{check-install-id}"            \
             --name {check-name}                          \
             --sha ${{ghprbActualCommit}}                 \
             --external-id ${{BUILD_ID}}                  \