Skip to content

Commit 5389791

Browse files
CDash Integration (#730)
* Enable CDash for Gitlab test results * Update comment --------- Co-authored-by: Michael McKinsey <michaelmckinsey1@gmail.com>
1 parent fb78fc2 commit 5389791

File tree

5 files changed

+87
-8
lines changed

5 files changed

+87
-8
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ __pycache__
55
_build
66
spack.lock
77
.spack-env
8+
.env

.gitlab/ci/test.yml

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,35 @@
44
- HOST: tioga
55
ARCHCONFIG: llnl-elcapitan
66
SCHEDULER_PARAMETERS: -N 1 -t 20m
7-
BENCHMARK: [amg2023, kripke, saxpy]
8-
VARIANT: [rocm]
7+
BENCHMARK: [amg2023, kripke, laghos]
8+
VARIANT: [+rocm]
9+
DASHBOARD_NAME: "Tioga HPECray-zen3-MI250X-Slingshot [benchpark system init --dest=tioga-system llnl-elcapitan cluster=tioga]"
910
- HOST: dane
1011
ARCHCONFIG: llnl-cluster
1112
SCHEDULER_PARAMETERS: -N 1 -t 00:20:00
12-
BENCHMARK: [amg2023, kripke, saxpy]
13-
VARIANT: [openmp]
13+
BENCHMARK: [hpl, hpcg, amg2023, kripke]
14+
VARIANT: [+openmp]
15+
DASHBOARD_NAME: "Dane DELL-sapphirerapids-OmniPath [benchpark system init --dest=dane-system llnl-cluster cluster=dane]"
1416
- HOST: ruby
1517
ARCHCONFIG: llnl-cluster
1618
SCHEDULER_PARAMETERS: -N 1 -t 00:20:00
17-
BENCHMARK: [amg2023, kripke, saxpy]
18-
VARIANT: [openmp]
19+
BENCHMARK: [hpl, hpcg, amg2023, kripke]
20+
VARIANT: [+openmp]
21+
DASHBOARD_NAME: "Ruby Supermicro-icelake-OmniPath [benchpark system init --dest=ruby-system llnl-cluster cluster=ruby]"
22+
- HOST: ruby
23+
ARCHCONFIG: llnl-cluster
24+
SCHEDULER_PARAMETERS: -N 1 -t 00:20:00
25+
BENCHMARK: [laghos]
26+
VARIANT: [""]
27+
DASHBOARD_NAME: "Ruby Supermicro-icelake-OmniPath [benchpark system init --dest=ruby-system llnl-cluster cluster=ruby]"
1928
.push_status: &push_status
29+
# Max job name length 140 characters
2030
- |
31+
TRUNCATED_JOB_NAME=$(echo "${CI_JOB_NAME}" | cut -c1-140)
2132
curl -X POST --url "https://api.github.com/repos/llnl/${CI_PROJECT_NAME}/statuses/${CI_COMMIT_SHA}" \
2233
--header 'Content-Type: application/json' \
2334
--header "authorization: Bearer ${GITHUB_TOKEN}" \
24-
--data "{ \"state\": \"${pipeline_status}\", \"target_url\": \"${CI_JOB_URL}\", \"description\": \"${CI_JOB_NAME}\", \"context\": \"ci/gitlab/${CI_JOB_NAME}\" }"
35+
--data "{ \"state\": \"${pipeline_status}\", \"target_url\": \"${CI_JOB_URL}\", \"description\": \"${TRUNCATED_JOB_NAME}\", \"context\": \"ci/gitlab/${CI_JOB_NAME}\" }"
2536
.report_status: &report_status
2637
before_script:
2738
- export pipeline_status="pending"
@@ -30,9 +41,18 @@
3041
- |
3142
if [[ "$CI_JOB_STATUS" == "failed" ]]; then
3243
export pipeline_status="failure"
44+
export EXIT_CODE=false
3345
else
3446
export pipeline_status="$CI_JOB_STATUS"
47+
export EXIT_CODE=true
3548
fi
49+
ctest -S CTestGitlab.cmake \
50+
-DHOST="${HOST}" \
51+
-DDASHBOARD_NAME="${DASHBOARD_NAME}" \
52+
-DBUILD_NAME="${HOST}/${BENCHMARK}${VARIANT}" \
53+
-DSITE="$(hostname)" \
54+
-DTEST_TYPE="${TEST_TYPE}" \
55+
3656
- *push_status
3757
workflow:
3858
auto_cancel:
@@ -65,7 +85,7 @@ test_run:
6585
fi
6686
./bin/benchpark system init --dest=${HOST}-system ${ARCHCONFIG} cluster=$HOST $EXTRA_ARGS
6787
# Initialize Experiment
68-
- ./bin/benchpark experiment init --dest=${BENCHMARK}-benchmark ${BENCHMARK}+${VARIANT}
88+
- ./bin/benchpark experiment init --dest=${BENCHMARK}-benchmark ${BENCHMARK}${VARIANT}
6989
# Build Workspace
7090
- ./bin/benchpark setup ${BENCHMARK}-benchmark ${HOST}-system workspace/
7191
# Setup Ramble & Spack

CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
cmake_minimum_required(VERSION 3.10)
2+
project(PythonTestProject LANGUAGES NONE)
3+
ENABLE_TESTING()
4+
INCLUDE(CTest)
5+
find_package(Python3 REQUIRED)
6+
7+
add_test(NAME Gitlab
8+
COMMAND ${CMAKE_COMMAND} -E $ENV{EXIT_CODE})

CTestConfig.cmake

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
## This file should be placed in the root directory of your project.
2+
## Then modify the CMakeLists.txt file in the root directory of your
3+
## project to incorporate the testing dashboard.
4+
##
5+
## The following are required to submit to the CDash dashboard:
6+
#ENABLE_TESTING()
7+
#INCLUDE(CTest)
8+
9+
set(CTEST_PROJECT_NAME benchpark)
10+
set(CTEST_NIGHTLY_START_TIME 01:00:00 UTC)
11+
12+
if(CMAKE_VERSION VERSION_GREATER 3.14)
13+
set(CTEST_SUBMIT_URL https://my.cdash.org/submit.php?project=Benchpark)
14+
else()
15+
set(CTEST_DROP_METHOD "https")
16+
set(CTEST_DROP_SITE "my.cdash.org")
17+
set(CTEST_DROP_LOCATION "/submit.php?project=Benchpark")
18+
endif()
19+
20+
set(CTEST_DROP_SITE_CDASH TRUE)
21+
22+
# CDash token expected in ENV
23+
set(_auth_token $ENV{CDASH_AUTH_TOKEN})

CTestGitlab.cmake

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
set(CTEST_SOURCE_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}")
2+
set(CTEST_BINARY_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}")
3+
set(CTEST_OUTPUT_ON_FAILURE ON)
4+
set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
5+
6+
set(CTEST_UPDATE_COMMAND "git")
7+
set(CTEST_UPDATE_VERSION_ONLY 1)
8+
9+
set(CTEST_SITE ${SITE})
10+
set(CTEST_BUILD_NAME ${BUILD_NAME})
11+
12+
# Separate dashboards for Nightly testing and PRs
13+
if ("${TEST_TYPE}" STREQUAL "Nightly")
14+
ctest_start("Nightly" GROUP "Nightly [benchpark-develop]")
15+
else()
16+
ctest_start("Continuous" GROUP "${DASHBOARD_NAME}")
17+
endif()
18+
19+
ctest_update()
20+
ctest_configure()
21+
ctest_test(INCLUDE "Gitlab")
22+
23+
# Submit results
24+
ctest_submit(
25+
PARTS Update Test # 'Configure' and 'Build' not uploaded
26+
HTTPHEADER "Authorization: Bearer ${_auth_token}"
27+
)

0 commit comments

Comments
 (0)