]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-build.git/commitdiff
ceph-pull-requests-ppc64:Added support for ppc64 runners 2492/head
authorAnshuman <anshuman@ibm.com>
Mon, 3 Nov 2025 04:52:57 +0000 (10:22 +0530)
committerAnshuman <anshuman@ibm.com>
Wed, 17 Jun 2026 10:34:27 +0000 (16:04 +0530)
Signed-off-by: Anshuman <anshuman@ibm.com>
ceph-make-check-periodic-ppc64/build/build [new file with mode: 0644]
ceph-make-check-periodic-ppc64/build/kill-tests [new file with mode: 0644]
ceph-make-check-periodic-ppc64/config/definitions/ceph-make-check-periodic-ppc64.yml [new file with mode: 0644]

diff --git a/ceph-make-check-periodic-ppc64/build/build b/ceph-make-check-periodic-ppc64/build/build
new file mode 100644 (file)
index 0000000..2f8f095
--- /dev/null
@@ -0,0 +1,42 @@
+#!/bin/bash -ex
+
+docs_pr_only
+container_pr_only
+gha_pr_only
+qa_pr_only
+if [[ "$DOCS_ONLY" = true || "$CONTAINER_ONLY" = true || "$GHA_ONLY" == true || "$QA_ONLY" == true ]]; then
+  echo "Only the doc/, container/, qa/ or .github/ dir changed.  No need to run make check."
+  exit 0
+fi
+
+NPROC=$(nproc)
+NPMCACHE=${HOME}/npmcache
+cat >.env <<EOF
+NPROC=${NPROC}
+MAX_PARALLEL_JOBS=${NPROC}
+WITH_RBD_RWL=true
+WITHOUT_DASHBOARD=true
+WITHOUT_BREAKPAD=true
+DISABLE_WERROR=true
+DISABLE_FIO=true
+JENKINS_HOME=${JENKINS_HOME}
+REWRITE_COVERAGE_ROOTDIR=${PWD}/src/pybind/mgr/dashboard/frontend
+EOF
+bwc() {
+  # specify timeout in hours for $1
+  local timeout=$(($1 * 60 * 60))
+  shift
+  timeout "${timeout}" ./src/script/build-with-container.py \
+    -d "${DISTRO_BASE:-centos9}" \
+    --env-file="${PWD}/.env" \
+    --current-branch="${GIT_BRANCH:-main}" \
+    -t+ppc64 \
+    "${@}"
+}
+
+podman login -u ${DOCKER_HUB_USERNAME} -p ${DOCKER_HUB_PASSWORD} docker.io
+
+bwc 1 -e configure
+bwc 4 -e tests
+sleep 5
+ps -ef | grep -v jnlp | grep ceph || true
diff --git a/ceph-make-check-periodic-ppc64/build/kill-tests b/ceph-make-check-periodic-ppc64/build/kill-tests
new file mode 100644 (file)
index 0000000..ad261bc
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/bash -ex
+
+# kill all descendant processes of ctest
+
+# ceph-make-check-periodic-ppc64/build/build is killed by jenkins when the ceph-make-check-periodic-ppc64 job is aborted or
+# canceled, see https://www.jenkins.io/doc/book/using/aborting-a-build/ . but build/build does not
+# wait until all its children processes quit. after ctest is killed by SIGTERM, there is chance
+# that some tests are still running as ctest does not get a chance to kill them before it terminates.
+# if these tests had timed out, ctest would kill them using SIGKILL. so we need to kill them
+# manually after the job is aborted.
+
+# if ctest is still running, get its pid, otherwise we are done.
+ctest_pid=$(pgrep ctest) || exit 0
+# the parent process of ctest should have been terminated, but this might not be true when
+# it comes to some of its descendant processes, for instance, unittest-seastar-messenger
+ctest_pgid=$(ps --no-headers --format 'pgid:1' --pid $ctest_pid)
+kill -SIGTERM -- -"$ctest_pgid"
+# try harder
+for seconds in 0 1 1 2 3; do
+  sleep $seconds
+  if pgrep --pgroup $ctest_pgid >/dev/null; then
+    # kill only if we've waited for a while
+    if test $seconds != 0; then
+      pgrep --pgroup $ctest_pgid
+      echo 'try harder'
+      kill -SIGKILL -- -"$ctest_pgid"
+    fi
+  else
+    echo 'killed'
+    break
+  fi
+done
diff --git a/ceph-make-check-periodic-ppc64/config/definitions/ceph-make-check-periodic-ppc64.yml b/ceph-make-check-periodic-ppc64/config/definitions/ceph-make-check-periodic-ppc64.yml
new file mode 100644 (file)
index 0000000..8b191b1
--- /dev/null
@@ -0,0 +1,91 @@
+- job:
+    block-downstream: false
+    block-upstream: false
+    builders:
+    - shell:
+        !include-raw-verbatim:
+          - ../../../scripts/build_utils.sh
+          - ../../../scripts/setup_container_runtime.sh
+          - ../../build/build
+    concurrent: true
+    disabled: false
+    name: ceph-make-check-periodic-ppc64
+    node: 'ppc64 && (installed-os-noble || centos9)'
+    parameters:
+    - string:
+        name: PullID
+        description: "the GitHub pull id, like '72' in 'ceph/pull/72'"
+        default: origin/main
+    project-type: freestyle
+    properties:
+    - build-discarder:
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+        days-to-keep: 15
+        num-to-keep: 300
+    - github:
+        url: https://github.com/ceph/ceph/
+    quiet-period: '5'
+    retry-count: '3'
+    scm:
+    - git:
+        url: https://github.com/ceph/ceph.git
+        name: origin
+        branches:
+          - origin/pr/${{PullID}}/merge
+        refspec: +refs/pull/${{PullID}}/*:refs/remotes/origin/pr/${{PullID}}/*
+        skip-tag: true
+        shallow-clone: true
+        honor-refspec: true
+        timeout: 20
+        wipe-workspace: true
+    triggers:
+      - timed: '@weekly'
+    publishers:
+      - cobertura:
+          report-file: "src/pybind/mgr/dashboard/frontend/coverage/cobertura-coverage.xml"
+          only-stable: "true"
+          health-auto-update: "false"
+          stability-auto-update: "false"
+          zoom-coverage-chart: "true"
+          source-encoding: "Big5"
+          targets:
+            - files:
+                healthy: 10
+                unhealthy: 20
+                failing: 30
+            - method:
+                healthy: 10
+                unhealthy: 20
+                failing: 30
+      - postbuildscript:
+          builders:
+            - role: SLAVE
+              build-on:
+                - ABORTED
+              build-steps:
+                - shell:
+                    !include-raw-verbatim:
+                      - ../../build/kill-tests
+      - xunit:
+          thresholds:
+            - failed:
+                unstable: 0
+                unstablenew: 0
+                failure: 0
+                failurenew: 0
+          types:
+            - ctest:
+                pattern: "build/Testing/**/Test.xml"
+                skip-if-no-test-files: true
+    wrappers:
+      - ansicolor
+      - credentials-binding:
+          - username-password-separated:
+              credential-id: github-readonly-token
+              username: GITHUB_USER
+              password: GITHUB_PASS
+          - username-password-separated:
+              credential-id: dgalloway-docker-hub
+              username: DOCKER_HUB_USERNAME
+              password: DOCKER_HUB_PASSWORD