Skip to content
Snippets Groups Projects
Commit a5c68b6f authored by Ben Boeckel's avatar Ben Boeckel Committed by Kitware Robot
Browse files

Merge topic 'ci_annotations'


08979a51 CI: Add CDashy annotations to job sidebar

Acked-by: default avatarKitware Robot <kwrobot@kitware.com>
Tested-by: default avatarbuildbot <buildbot@kitware.com>
Reviewed-by: default avatarCorey Wetterer-Nelson (Kitware) <c.wetterer-nelson@kitware.com>
Merge-request: !104
parents ed6151a2 08979a51
No related branches found
No related tags found
1 merge request!104CI: Add CDashy annotations to job sidebar
Pipeline #397997 failed
......@@ -7,6 +7,8 @@
reports:
junit:
- build/junit.xml
annotations:
- build/annotations.json
paths:
# CTest files.
- build/CTestCustom*.cmake
......@@ -15,6 +17,7 @@
# CDash files.
- build/DartConfiguration.tcl
- build/cdash-build-id
.release_artifacts:
artifacts:
......
function (ctest_annotation_report file)
set(label "")
if (EXISTS "${file}")
file(READ "${file}" json)
else ()
set(json "{\"CDash\": []}")
endif ()
foreach (arg IN LISTS ARGN)
if (NOT label)
set(label "${arg}")
continue ()
endif ()
set(item "{\"external_link\":{\"label\":\"${label}\",\"url\":\"${arg}\"}}")
set(label "")
string(JSON length LENGTH "${json}" "CDash")
string(JSON json SET "${json}" "CDash" "${length}" "${item}")
endforeach ()
file(WRITE "${file}" "${json}")
endfunction ()
if (NOT DEFINED build_id)
include("${CTEST_BINARY_DIRECTORY}/cdash-build-id" OPTIONAL)
endif ()
function (store_build_id build_id)
file(WRITE "${CTEST_BINARY_DIRECTORY}/cdash-build-id"
"set(build_id \"${build_id}\")\n")
endfunction ()
......@@ -23,6 +23,7 @@ endif ()
set(targets_to_build "all")
set(num_warnings 0)
set(num_errors 0)
foreach (target IN LISTS targets_to_build)
set(build_args)
if (NOT target STREQUAL "all")
......@@ -40,10 +41,12 @@ foreach (target IN LISTS targets_to_build)
ctest_build(
NUMBER_WARNINGS num_warnings_target
NUMBER_ERRORS num_errors_target
RETURN_VALUE build_result
${build_args})
math(EXPR num_warnings "${num_warnings} + ${num_warnings_target}")
math(EXPR num_errors "${num_errors} + ${num_errors_target}")
ctest_submit(PARTS Build)
......@@ -52,6 +55,14 @@ foreach (target IN LISTS targets_to_build)
endif ()
endforeach ()
include("${CMAKE_CURRENT_LIST_DIR}/ctest_annotation.cmake")
if (DEFINED build_id)
ctest_annotation_report("${CTEST_BINARY_DIRECTORY}/annotations.json"
"Build Errors (${num_errors})" "https://open.cdash.org/viewBuildError.php?buildid=${build_id}"
"Build Warnings (${num_warnings})" "https://open.cdash.org/viewBuildError.php?type=1&buildid=${build_id}"
)
endif ()
if (build_result)
message(FATAL_ERROR
"Failed to build")
......
......@@ -21,9 +21,20 @@ ctest_configure(
ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}")
# We can now submit because we've configured. This is a cmb-superbuild-ism.
ctest_submit(PARTS Update)
ctest_submit(PARTS Update
BUILD_ID build_id)
ctest_submit(PARTS Configure)
include("${CMAKE_CURRENT_LIST_DIR}/ctest_annotation.cmake")
if (DEFINED build_id)
ctest_annotation_report("${CTEST_BINARY_DIRECTORY}/annotations.json"
"Build Summary" "https://open.cdash.org/build/${build_id}"
"Update" "https://open.cdash.org/build/${build_id}/update"
"Configure" "https://open.cdash.org/build/${build_id}/configure"
)
store_build_id("${build_id}")
endif ()
if (configure_result)
message(FATAL_ERROR
"Failed to configure")
......
......@@ -31,6 +31,13 @@ ctest_memcheck(
ctest_submit(PARTS Test)
ctest_submit(PARTS Memcheck)
include("${CMAKE_CURRENT_LIST_DIR}/ctest_annotation.cmake")
if (DEFINED build_id)
ctest_annotation_report("${CTEST_BINARY_DIRECTORY}/annotations.json"
"Defects (${defects})" "https://open.cdash.org/viewDynamicAnalysis.php?buildid=${build_id}"
)
endif ()
if (test_result)
message(FATAL_ERROR
"Failed to test")
......
......@@ -24,6 +24,16 @@ ctest_test(APPEND
OUTPUT_JUNIT "${CTEST_BINARY_DIRECTORY}/junit.xml")
ctest_submit(PARTS Test)
include("${CMAKE_CURRENT_LIST_DIR}/ctest_annotation.cmake")
if (DEFINED build_id)
ctest_annotation_report("${CTEST_BINARY_DIRECTORY}/annotations.json"
"All Tests" "https://open.cdash.org/viewTest.php?buildid=${build_id}"
"Test Failures" "https://open.cdash.org/viewTest.php?onlyfailed&buildid=${build_id}"
"Tests Not Run" "https://open.cdash.org/viewTest.php?onlynotrun&buildid=${build_id}"
"Test Passes" "https://open.cdash.org/viewTest.php?onlypassed&buildid=${build_id}"
)
endif ()
if (test_result)
message(FATAL_ERROR
"Failed to test")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment