Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ tests:
- as: e2e-telcov10n-functional-cnf-compute-llc-stable
capabilities:
- intranet
cron: 00 08 * * 6
interval: 504h
reporter_config:
channel: '#eco-ci-cd-notifications'
job_states_to_report:
Expand All @@ -37,6 +37,7 @@ tests:
env:
T5CI_JOB_TYPE: stable
T5CI_VERSION: "4.19"
TEST_RUN_FEATURES: tier-0 || uncore-cache
observers:
enable:
- observers-resource-watch
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ tests:
- as: e2e-telcov10n-functional-cnf-compute-llc-stable
capabilities:
- intranet
cron: 00 08 * * 0
interval: 504h
reporter_config:
channel: '#eco-ci-cd-notifications'
job_states_to_report:
Expand All @@ -37,6 +37,7 @@ tests:
env:
T5CI_JOB_TYPE: stable
T5CI_VERSION: "4.21"
TEST_RUN_FEATURES: tier-0 || uncore-cache
observers:
enable:
- observers-resource-watch
Expand Down
Original file line number Diff line number Diff line change
@@ -1,31 +1,24 @@
base_images:
ansible:
name: "4.21"
name: "4.22"
namespace: ocp
tag: ansible
base:
name: "4.21"
name: "4.22"
namespace: ocp
tag: base
releases:
initial:
candidate:
product: ocp
relative: 1
stream: nightly
version: "4.22"
latest:
candidate:
product: ocp
stream: nightly
release:
channel: stable
version: "4.22"
resources:
'*':
requests:
cpu: 100m
memory: 200Mi
tests:
- as: e2e-telcov10n-functional-cnf-compute-llc-nightly
- as: e2e-telcov10n-functional-cnf-compute-llc-stable
capabilities:
- intranet
cron: 00 16 * * 0
Expand All @@ -42,7 +35,7 @@ tests:
{{end}}'
steps:
env:
T5CI_JOB_TYPE: llc-cnftests
T5CI_JOB_TYPE: stable
T5CI_VERSION: "4.22"
observers:
enable:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -885,14 +885,14 @@ periodics:
secretName: result-aggregator
- agent: kubernetes
cluster: build07
cron: 00 08 * * 6
decorate: true
decoration_config:
skip_cloning: true
extra_refs:
- base_ref: main
org: openshift-kni
repo: eco-ci-cd
interval: 504h
labels:
capability/intranet: intranet
ci-operator.openshift.io/variant: cnf-compute-llc-4.19
Expand Down Expand Up @@ -1071,14 +1071,14 @@ periodics:
secretName: result-aggregator
- agent: kubernetes
cluster: build07
cron: 00 08 * * 0
decorate: true
decoration_config:
skip_cloning: true
extra_refs:
- base_ref: main
org: openshift-kni
repo: eco-ci-cd
interval: 504h
labels:
capability/intranet: intranet
ci-operator.openshift.io/variant: cnf-compute-llc-4.21
Expand Down Expand Up @@ -1176,9 +1176,8 @@ periodics:
capability/intranet: intranet
ci-operator.openshift.io/variant: cnf-compute-llc-4.22
ci.openshift.io/generator: prowgen
job-release: "4.22"
pj-rehearse.openshift.io/can-be-rehearsed: "true"
name: periodic-ci-openshift-kni-eco-ci-cd-main-cnf-compute-llc-4.22-e2e-telcov10n-functional-cnf-compute-llc-nightly
name: periodic-ci-openshift-kni-eco-ci-cd-main-cnf-compute-llc-4.22-e2e-telcov10n-functional-cnf-compute-llc-stable
reporter_config:
slack:
channel: '#eco-ci-cd-notifications'
Expand All @@ -1199,7 +1198,7 @@ periodics:
- --lease-server-credentials-file=/etc/boskos/credentials
- --report-credentials-file=/etc/report/credentials
- --secret-dir=/secrets/ci-pull-credentials
- --target=e2e-telcov10n-functional-cnf-compute-llc-nightly
- --target=e2e-telcov10n-functional-cnf-compute-llc-stable
- --variant=cnf-compute-llc-4.22
command:
- ci-operator
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,12 @@ export ROLE_WORKER_CNF=worker-cnf
TELCO_CI_REPO="https://github.com/openshift-kni/telco-ci.git"
NTO_REPO="https://github.com/openshift/cluster-node-tuning-operator.git"
NTO_BRANCH=$(git ls-remote --heads ${NTO_REPO} main | grep -q 'refs/heads/main' && echo 'main' || echo 'master')
GINKGO_LABEL="uncore-cache"
GINKGO_SUITES="test/e2e/performanceprofile/functests/13_llc"
if [[ -n "${TEST_RUN_FEATURES:-}" ]]; then
GINKGO_LABEL="${TEST_RUN_FEATURES}"
else
GINKGO_LABEL='(tier-0 || tier-1 || tier-2 || tier-3 || uncore-cache || workload-hints || tuned-deferred) && !mixed-cpus'
fi
GINKGO_SUITES="test/e2e/performanceprofile/functests"

[[ -f "${SHARED_DIR}"/main.env ]] && source "${SHARED_DIR}"/main.env || echo "No main.env file found"

Expand Down Expand Up @@ -132,6 +136,7 @@ export GOPATH="${HOME}"/go
export GOBIN="${GOPATH}"/bin
export IMAGE_REGISTRY=quay.io/openshift-kni/
export CNF_TESTS_IMAGE=cnf-tests:latest
export BUSY_CPUS_IMAGE=cnf-tests:latest

## Print the nodes in the cluster
oc get nodes
Expand Down Expand Up @@ -172,33 +177,57 @@ if [[ ! -d "${SHARED_DIR}"/telco5gci ]]; then
fi
pip install -r "${SHARED_DIR}"/telco5gci/requirements.txt

for junit_file in "${ARTIFACT_DIR}"/*.xml; do
if [ ! -e "${junit_file}" ]; then
echo "No XML files found in ${ARTIFACTS_DIR}."
# Report generation strategy:
# 1. Filter: ginkgo with --keep-separate-reports produces per-directory XMLs, but
# directories with no tests matching our label filter produce empty XMLs (0 test
# cases). Remove those to avoid cluttering artifacts with empty reports.
# 2. Merge: combine only non-empty XMLs into a single junit.xml so the merged
# report reflects only directories where tests actually ran.
# 3. Reports: generate HTML and JSON for all XMLs including the merged junit.xml,
# giving us both per-directory and consolidated reports.
# 4. Cleanup: remove per-directory XMLs after report generation so Prow only sees
# the merged junit.xml. Without this, Prow shows every test result twice.
non_empty_xml=()
for xml_file in "${ARTIFACT_DIR}"/*.xml; do
if [ ! -e "${xml_file}" ]; then
echo "No XML files found in ${ARTIFACT_DIR}."
exit 0
fi
test_count=$(grep -o 'tests="[0-9]*"' "${xml_file}" | head -1 | grep -o '[0-9]*')
if [[ -z "${test_count}" || "${test_count}" -eq 0 ]]; then
echo "Removing empty XML: ${xml_file}"
rm -f "${xml_file}"
else
non_empty_xml+=("${xml_file}")
fi
done

if [ ${#non_empty_xml[@]} -eq 0 ]; then
echo "No non-empty XML files found."
exit 0
fi

# Merge non-empty XMLs into junit.xml
echo "Merging ${#non_empty_xml[@]} XML files into ${ARTIFACT_DIR}/junit.xml"
junitparser merge "${non_empty_xml[@]}" "${ARTIFACT_DIR}"/junit.xml

# Generate HTML and JSON reports for all XMLs including the merged junit.xml
for junit_file in "${ARTIFACT_DIR}"/*.xml; do
output_file="${junit_file%.xml}.html"
# Run j2html.py on the XML file
echo "Processing ${junit_file} -> ${output_file}"
python "${SHARED_DIR}"/telco5gci/j2html.py "${junit_file}" -o "${output_file}"
if [[ $? -ne 0 ]]; then
echo "Error: Failed to process ${junit_file}."
exit 1;
if ! python "${SHARED_DIR}"/telco5gci/j2html.py "${junit_file}" -o "${output_file}"; then
echo "Error: Failed to process ${junit_file}."
exit 1
fi

# create json reports
json_output_file="${junit_file%.xml}.json"
python "${SHARED_DIR}"/telco5gci/junit2json.py "${junit_file}" -o "${json_output_file}"
done

# Run junitparser merge

xml_files=("$ARTIFACT_DIR"/*.xml)
output_file="${ARTIFACT_DIR}"/junit.xml

# Merge XML files using junitparser
echo "Merging XML files into ${output_file}"
junitparser merge "${xml_files[@]}" "${output_file}"
# Remove per-directory XMLs, keep only the merged junit.xml
for xml_file in "${non_empty_xml[@]}"; do
rm -f "${xml_file}"
done

rm -rf "${SHARED_DIR}"/myenv "${SHARED_DIR}"/telco5gci
set +x
Expand Down