Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
7684a2f
DAOS-18348 build: Rnable code coverage
phender Dec 12, 2025
2c070fe
Updates
phender Dec 12, 2025
f45a2cc
Updates.
phender Dec 13, 2025
f639507
Updates
phender Dec 13, 2025
18a413a
Updates
phender Dec 13, 2025
bacc04c
Updates
phender Dec 13, 2025
78161df
Updates
phender Dec 13, 2025
b3184cf
Updates
phender Dec 13, 2025
47bfe25
Updates
phender Dec 15, 2025
c2a881c
Updates
phender Dec 15, 2025
912ec5f
Updates
phender Dec 15, 2025
41e4641
Updates
phender Dec 15, 2025
c83967c
Updates
phender Dec 15, 2025
c1d0cfa
Updates
phender Dec 15, 2025
049db58
Updates
phender Dec 15, 2025
d522ce7
Updates
phender Dec 15, 2025
884fcd0
Updates
phender Dec 15, 2025
ae882ed
Updates
phender Dec 15, 2025
70f1163
Updates
phender Dec 15, 2025
f605da3
Updates
phender Dec 15, 2025
8ef5e8f
Updates
phender Dec 15, 2025
98142d2
Updates
phender Dec 15, 2025
c7c610f
Updates
phender Dec 16, 2025
1dd0a92
Merge branch 'master' into hendersp/DAOS-18348
phender Dec 16, 2025
6e841f7
Updates.
phender Dec 16, 2025
8dc2a06
Updates
phender Dec 16, 2025
86106d7
Updates.
phender Dec 16, 2025
2d9d9b9
Updates
phender Dec 16, 2025
c86207f
Updates
phender Dec 16, 2025
f10f729
Updates.
phender Dec 16, 2025
9c2ec81
Updates
phender Dec 16, 2025
d0cf14c
Updates.
phender Dec 16, 2025
a8b8ea6
Updates.
phender Dec 16, 2025
c8e982c
Updates.
phender Dec 16, 2025
7cced39
Debug.
phender Dec 16, 2025
52d82e9
Debug
phender Dec 16, 2025
29b1d22
Fix bullseye RPM packaging
phender Dec 17, 2025
b746043
Updates
phender Dec 17, 2025
c7070e2
Updates
phender Dec 17, 2025
ca25434
Updates.
phender Dec 17, 2025
327c42d
Updates.
phender Dec 17, 2025
1c648ed
Updates.
phender Dec 17, 2025
d522b71
Updates.
phender Dec 17, 2025
d5a148c
Updates
phender Dec 17, 2025
0ba12fb
Updates.
phender Dec 17, 2025
7396fea
Updates.
phender Dec 17, 2025
1ad1849
Updates.
phender Dec 17, 2025
2f7b886
Updates
phender Dec 17, 2025
145a342
Updates.
phender Dec 18, 2025
6d53240
Updates
phender Dec 18, 2025
55ede48
Updates
phender Dec 18, 2025
9b6f4b9
Updates
phender Dec 18, 2025
6231cfe
Updates.
phender Dec 18, 2025
debc44f
Updates
phender Dec 18, 2025
40f9a69
Updates.
phender Dec 18, 2025
b8e6b87
Updates.
phender Dec 18, 2025
4f3bf23
Updates.
phender Dec 18, 2025
5ad0d6d
Updates.
phender Dec 18, 2025
3d7748f
Updates.
phender Dec 18, 2025
af29834
Updates
phender Dec 18, 2025
5df29e2
Updates.
phender Dec 18, 2025
8eddd77
Updates.
phender Dec 18, 2025
8e5a981
Updates.
phender Dec 18, 2025
5bc17ae
Updates.
phender Dec 19, 2025
a15e18e
Updates.
phender Dec 19, 2025
6866728
Updates.
phender Dec 19, 2025
a79ac0a
Merge branch 'master' into hendersp/DAOS-18348
phender Dec 19, 2025
7d27124
Updates.
phender Dec 19, 2025
3e4a04a
Updates.
phender Dec 21, 2025
e90be2b
Merge branch 'master' into hendersp/DAOS-18348
phender Jan 5, 2026
ba6e560
Fix bullshtml install
phender Jan 5, 2026
135565f
Updates.
phender Jan 5, 2026
9de14eb
Updates
phender Jan 5, 2026
2ee6454
Updates
phender Jan 6, 2026
772942c
Summary updates
phender Jan 6, 2026
89112e7
Merge branch 'master' into hendersp/DAOS-18348
phender Jan 6, 2026
cde101c
Updates
phender Jan 6, 2026
c2469f9
Fix syntax
phender Jan 6, 2026
121968d
Updates
phender Jan 6, 2026
bc95f1c
Compress sources
phender Jan 6, 2026
093539b
Fix path.
phender Jan 7, 2026
3f20427
Fix typo
phender Jan 7, 2026
692f45b
Re-enable NLT
phender Jan 7, 2026
6f9bc9b
Updates
phender Jan 8, 2026
e8493c2
Updates
phender Jan 8, 2026
7d51cd8
Merge branch 'master' into hendersp/DAOS-18348
phender Jan 8, 2026
02f89ff
Use separate stages
phender Jan 9, 2026
a828ca9
Scripted build stages.
phender Jan 9, 2026
80a2e5d
Merge branch 'master' into hendersp/DAOS-18348
phender Jan 9, 2026
fd22320
Fix icc build
phender Jan 9, 2026
cb11d24
Updates.
phender Jan 9, 2026
edb58b4
Updates
phender Jan 9, 2026
7bac2f3
Updates
phender Jan 9, 2026
c253bdf
Updates
phender Jan 9, 2026
3edaa82
Updates
phender Jan 9, 2026
346395a
Scripted Unit test stages
phender Jan 9, 2026
c200e88
Updates
phender Jan 9, 2026
fdd6dac
Updates
phender Jan 9, 2026
a213cdb
Debug
phender Jan 9, 2026
eb74852
Debug
phender Jan 9, 2026
305aa9c
Updates
phender Jan 10, 2026
2c46612
Updates
phender Jan 10, 2026
d69ceea
Updates
phender Jan 10, 2026
bcda271
Updates
phender Jan 10, 2026
cba927b
Updates
phender Jan 10, 2026
5fa6035
Update
phender Jan 10, 2026
95d4821
Updates
phender Jan 10, 2026
be8c283
Updates
phender Jan 10, 2026
1056449
Updates
phender Jan 10, 2026
29bab49
Updates.
phender Jan 12, 2026
659fe5a
Updates
phender Jan 12, 2026
5d7cc55
Merge branch 'master' into hendersp/DAOS-18348
phender Jan 13, 2026
3646413
Updates
phender Jan 13, 2026
439cf94
Updates
phender Jan 13, 2026
cb67c7a
Updates
phender Jan 14, 2026
4ab0415
Updates.
phender Jan 14, 2026
b81d0c1
Revert.
phender Jan 14, 2026
5f70e04
Updates
phender Jan 14, 2026
3d45722
Updates
phender Jan 14, 2026
ddeaf17
Updates
phender Jan 14, 2026
708bcd7
Updates.
phender Jan 14, 2026
939e017
Updates
phender Jan 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,094 changes: 872 additions & 222 deletions Jenkinsfile

Large diffs are not rendered by default.

23 changes: 0 additions & 23 deletions ci/bullseye_generate_report.sh

This file was deleted.

25 changes: 14 additions & 11 deletions ci/provisioning/post_provision_config_common_functions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#
# Copyright 2022-2023 Intel Corporation.
# Copyright 2025 Google LLC
# Copyright 2025 Hewlett Packard Enterprise Development LP
# Copyright 2025-2026 Hewlett Packard Enterprise Development LP
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
Expand Down Expand Up @@ -60,6 +60,18 @@ add_repo() {
fi
}

add_inst_repo() {
local repo="$1"
local branch="$2"
local build_number="$3"
local repo_url="${ARTIFACTS_URL:-${JENKINS_URL}job/}"daos-stack/job/"$repo"/job/"${branch//\//%252F}"/"$build_number"/artifact/artifacts/$DISTRO_NAME/
dnf -y config-manager --add-repo="$repo_url"
repo="$(url_to_repo "$repo_url")"
# PR-repos: should always be able to upgrade modular packages
dnf -y config-manager --save --setopt "$repo.module_hotfixes=true" "$repo"
disable_gpg_check "$repo_url"
}

disable_gpg_check() {
local url="$1"

Expand Down Expand Up @@ -377,16 +389,7 @@ post_provision_config_nodes() {
branch="${branch%:*}"
fi
fi
local subdir
if ! $COVFN_DISABLED; then
subdir="bullseye/"
fi
local repo_url="${ARTIFACTS_URL:-${JENKINS_URL}job/}"daos-stack/job/"$repo"/job/"${branch//\//%252F}"/"$build_number"/artifact/artifacts/"${subdir:-}"$DISTRO_NAME/
dnf -y config-manager --add-repo="$repo_url"
repo="$(url_to_repo "$repo_url")"
# PR-repos: should always be able to upgrade modular packages
dnf -y config-manager --save --setopt "$repo.module_hotfixes=true" "$repo"
disable_gpg_check "$repo_url"
add_inst_repo "${repo}" "${branch}" "${build_number}"
done

# start with everything fully up-to-date
Expand Down
13 changes: 13 additions & 0 deletions ci/rpm/build_deps.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
#!/bin/bash
#
# Copyright 2025-2026 Hewlett Packard Enterprise Development LP
#
# Build DAOS dependencies
code_coverage="${1:-false}"
bullseye_key="${2:-}"
mydir="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"

cd /home/daos/pre || exit 1
scons install --build-deps=only USE_INSTALLED=all PREFIX=/opt/daos TARGET_TYPE=release -j 32

if [[ "${code_coverage}" == "true" ]] ; then
pushd "${mydir}/../.." || exit 1
utils/rpms/bullseye_build.sh "${bullseye_key}"
fi
7 changes: 4 additions & 3 deletions ci/rpm/gen_rpms.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,21 @@ if [ -e "${ci_envs}" ]; then
source "${ci_envs}"
fi

env
env | sort -n

pushd "${mydir}/../.." || exit 1
export DISTRO="${1}"
export DAOS_RELVAL="${2}"
code_coverage="${3:-false}"
rm -f ./*.rpm
rm -rf /home/daos/rpms/*
utils/rpms/build_packages.sh deps
utils/rpms/build_packages.sh deps "${code_coverage}"
if ls -1 ./*.rpm; then
mkdir -p /home/daos/rpms/deps
cp ./*.rpm /home/daos/rpms/deps
rm -f ./*.rpm
fi
utils/rpms/build_packages.sh daos
utils/rpms/build_packages.sh daos "${code_coverage}"
mkdir -p /home/daos/rpms/daos
cp ./*.rpm /home/daos/rpms/daos
popd || exit 1
7 changes: 7 additions & 0 deletions ci/rpm/install_deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ env
pushd "${mydir}/../.." || exit 1
export DISTRO="${1}"
export DAOS_RELVAL="${2}"
code_coverage="${3:-false}"
libfabric_pkg="$(utils/rpms/package_version.sh libfabric dev)"
mercury_pkg="$(utils/rpms/package_version.sh mercury dev)"
argobots_pkg="$(utils/rpms/package_version.sh argobots dev)"
Expand All @@ -38,4 +39,10 @@ sudo dnf install --allowerasing -y "${fused_pkg}" || echo "${fused_pkg} not avai
sudo dnf install --allowerasing -y "${pmdk_pkg}" || echo "${pmdk_pkg} not available"
sudo dnf install --allowerasing -y "${isal_pkg}" || echo "${isal_pkg} not available"
sudo dnf install --allowerasing -y "${isal_crypto_pkg}" || echo "${isal_crypto_pkg} not available"

if [[ "${code_coverage}" == "true" ]] ; then
bullseye_pkg="$(utils/rpms/package_version.sh bullseye normal)"
sudo dnf install --allowerasing -y "${bullseye_pkg}" || echo "${bullseye_pkg} not available"
fi

popd || exit 1
42 changes: 42 additions & 0 deletions ci/summary/bullseye_report.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/bin/bash
#
# Copyright 2026 Hewlett Packard Enterprise Development LP
#
# Script for generating a bullseye code coverage report summary
set -uex

if [ ! -d '/opt/BullseyeCoverage/bin' ]; then
echo 'Bullseye not found.'
exit 1
fi
export COVFILE="${WORKSPACE:-/tmp}/test.cov"
export PATH="/opt/BullseyeCoverage/bin:$PATH"

# Merge all coverage files
cp /opt/BullseyeCoverage/daos/test.cov "${COVFILE}"
readarray -t cov_files < <(find "${WORKSPACE}" -name test.cov)
if [ ${#cov_files[@]} -gt 0 ]; then
covmerge --no-banner --file "${COVFILE}" "${cov_files[@]}"
fi

if [ ! -e "$COVFILE" ]; then
echo "Coverage file ${COVFILE} is missing"
exit 1
else
ls -al "${COVFILE}"
# covdir -m
fi

# Generate the html report
rm -fr bullseye_code_coverage_report || true
mkdir bullseye_code_coverage_report
cp /opt/BullseyeCoverage/bin/bullseye_sources.tar.gz .
tar -xf bullseye_sources.tar.gz
covhtml --srcdir . --file test.cov bullseye_code_coverage_report
ls -al bullseye_code_coverage_report

# rm -fr bullseye_code_coverage_report || true
# mkdir bullseye_code_coverage_report
# java -jar bullshtml.jar bullseye_code_coverage_report
# ls -al bullseye_code_coverage_report

45 changes: 45 additions & 0 deletions ci/summary/install_pkgs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#!/bin/bash
#
# Copyright 2026 Hewlett Packard Enterprise Development LP
#
# Script for installing packages used for CI summary steps
set -uex

id
if [ "$(id -u)" = "0" ]; then
echo "Should not be run as root"
exit 1
fi

mydir="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
files=("$mydir/../parse_ci_envs.sh")
files+=("$mydir/../provision/post_provision_config_common_functions.sh")
for src_file in "${files[@]}"; do
if [ -e "${src_file}" ]; then
# shellcheck source=parse_ci_envs.sh disable=SC1091
source "${src_file}"
fi
done

env | sort -n

# Add a repo for this build
add_inst_repo "daos" "${BRANCH_NAME}" "${BUILD_NUMBER}"

# Install bullseye
bullseye_pkg="$(utils/rpms/package_version.sh bullseye normal)"
sudo dnf install --allowerasing -y "${bullseye_pkg}" || echo "${bullseye_pkg} not available"

# # Install bullshtml
# bullshtml_vers=1.0.5
# bullshtml_src=https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/bullshtml
# bullshtml_tar="bullshtml_${bullshtml_vers}.tar.gz"
# if [ -n "${DAOS_HTTPS_PROXY:-}" ]; then
# export https_proxy="${DAOS_HTTPS_PROXY}"
# fi
# sudo dnf install -y wget
# wget "${bullshtml_src}/${bullshtml_tar}"
# tar --strip-components=1 -xf "${bullshtml_tar}"

# bullshtml_pkg="$(utils/rpms/package_version.sh bullshtml normal)"
# sudo dnf install --allowerasing -y "${bullshtml_pkg}" || echo "${bullshtml_pkg} not available"
88 changes: 53 additions & 35 deletions ci/unit/required_packages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,45 +2,63 @@

set -eu

# No longer used but provided by pipeline-lib
# distro="$1"
# quick_build="${2:-false}"
distro="${1:-el8}"
code_coverage="${2:-false}"

OPENMPI_VER=""
PY_MINOR_VER=""

export DISTRO="el8" # should also work for el9
pkgs="$(utils/rpms/package_version.sh argobots lib) \
boost-python3$PY_MINOR_VER-devel \
capstone \
$(utils/rpms/package_version.sh argobots lib) \
$(utils/rpms/package_version.sh argobots debug) \
$(utils/rpms/package_version.sh daos_spdk dev) \
$(utils/rpms/package_version.sh daos_spdk debug) \
$(utils/rpms/package_version.sh isal dev) \
$(utils/rpms/package_version.sh isal_crypto lib) \
$(utils/rpms/package_version.sh isal_crypto debug) \
$(utils/rpms/package_version.sh libfabric dev) \
$(utils/rpms/package_version.sh libfabric debug) \
$(utils/rpms/package_version.sh mercury dev) \
$(utils/rpms/package_version.sh mercury debug) \
$(utils/rpms/package_version.sh pmdk lib pmemobj) \
$(utils/rpms/package_version.sh pmdk debug pmemobj) \
$(utils/rpms/package_version.sh pmdk debug pmem) \
fuse3 \
gotestsum \
hwloc-devel \
libasan \
libipmctl-devel \
libyaml-devel \
numactl \
numactl-devel \
openmpi$OPENMPI_VER \
patchelf \
pciutils-devel \
protobuf-c \
valgrind-devel"
export DISTRO="${distro}"
pkgs=("$(utils/rpms/package_version.sh argobots lib)")
pkgs+=("boost-python3${PY_MINOR_VER}-devel")
pkgs+=("capstone")
pkgs+=("$(utils/rpms/package_version.sh argobots lib)")
pkgs+=("$(utils/rpms/package_version.sh argobots debug)")
pkgs+=("$(utils/rpms/package_version.sh daos_spdk dev)")
pkgs+=("$(utils/rpms/package_version.sh daos_spdk debug)")
pkgs+=("$(utils/rpms/package_version.sh isal dev)")
pkgs+=("$(utils/rpms/package_version.sh isal_crypto lib)")
pkgs+=("$(utils/rpms/package_version.sh isal_crypto debug)")
pkgs+=("$(utils/rpms/package_version.sh libfabric dev)")
pkgs+=("$(utils/rpms/package_version.sh libfabric debug)")
pkgs+=("$(utils/rpms/package_version.sh mercury dev)")
pkgs+=("$(utils/rpms/package_version.sh mercury debug)")
pkgs+=("$(utils/rpms/package_version.sh pmdk lib pmemobj)")
pkgs+=("$(utils/rpms/package_version.sh pmdk debug pmemobj)")
pkgs+=("$(utils/rpms/package_version.sh pmdk debug pmem)")
pkgs+=("fuse3")
pkgs+=("gotestsum")
pkgs+=("hwloc-devel")
pkgs+=("libasan")
pkgs+=("libipmctl-devel")
pkgs+=("libyaml-devel")
pkgs+=("numactl")
pkgs+=("numactl-devel")
pkgs+=("openmpi${OPENMPI_VER}")
pkgs+=("patchelf")
pkgs+=("pciutils-devel")
pkgs+=("protobuf-c")
pkgs+=("valgrind-devel")

if [ "${code_coverage}" == "true" ] ; then
pkgs+=("$(utils/rpms/package_version.sh bullseye normal)")
case "${distro}" in
el*|centos*|rocky*|rhel*|alma*)
pkgs+=("java-1.8.0-openjdk")
;;
ubuntu*)
pkgs+=("openjdk-8-jdk")
;;
leap*|sles*)
pkgs+=("java-1_8_0-openjdk-devel")
;;
*)
echo "Unknown java package for ${distro} with code coverage"
exit 1
;;
esac
fi

# output with trailing newline suppressed
echo -e "$pkgs\c"
printf "${pkgs[*]}"

Check failure on line 63 in ci/unit/required_packages.sh

View workflow job for this annotation

GitHub Actions / ShellCheck

Don't use variables in the printf format string. Use printf '..%s..' "$foo". [SC2059]
exit 0
14 changes: 2 additions & 12 deletions ci/unit/test_main.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash
#
# Copyright 2020-2023 Intel Corporation.
# Copyright 2025 Hewlett Packard Enterprise Development LP
# Copyright 2025-2026 Hewlett Packard Enterprise Development LP
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
Expand All @@ -19,24 +19,14 @@ rm -rf test_results
mkdir test_results
chmod 777 test_results

# Check if this is a Bulleye stage
USE_BULLSEYE=false
# Check if this is a bdev stage
BDEV_TEST=false
case $STAGE_NAME in
*Bullseye**)
USE_BULLSEYE=true
;;
*bdev**)
BDEV_TEST=true
;;
esac

if $USE_BULLSEYE; then
rm -rf bullseye
mkdir -p bullseye
tar -C bullseye --strip-components=1 -xf bullseye.tar
fi

NODE=${NODELIST%%,*}

# Copy over the install tree and some of the build tree.
Expand Down
Loading
Loading