Open bartlettroscoe opened 2 months ago
Storing the enhanced test data via the existing "test measurements" functionality in CDash could be done with no changes to CDash. The data can be downloaded via the GraphQL API in CDash 3.6+ thanks to https://github.com/Kitware/CDash/pull/2406.
While uploading build data files to CDash could work in theory, doing so would lead to unnecessary backwards compatibility complexity down the road. I think it would be far better to do it "right" by storing build measurement data in dedicated tables in the CDash database. For a basic MVP, this could simply be stored in the database and exposed via the GraphQL API with no UI to start with. This approach would probably take a week or less to implement once the requirements are worked out.
@williamjallen, whatever you do, we will be stress testing this pretty quickly by generating build metrics for all of Trilinos. (It is not as many targets as Sierra but it will give us an idea about the performance.)
I just opened https://github.com/Kitware/CDash/pull/2501 which adds the ability see and filter the build measurements for a given build.
@williamjallen, can we differentiate the type of target:
add_custom_command()
)?
Also, can this also display the labels associated with each target and provide a way to filter based on the labels? (I think we can use CMake target labels to differentiate library targets/code from test targets/code.)
I will add that to the wish-list.
@bartlettroscoe Cross-post from https://github.com/Kitware/CDash/pull/2501#issuecomment-2423230610:
Yes, there will be a field which contains information what type of command was run. Currently the placeholder value is "TARGET", but that will change once we agree on the final design of the CTest-CDash interface.
Feature Request
Related issues
Description
This is the companion CDash issue for the CMake, CTest, CDash upload request cmake#26247. On the CDash side, we need it to be able to store metrics for every build target and every test, provide some views of that data, and extend the CDash REST API to be able to flexibly download that data.
There is a lot that needs to be specified on both the CMake, CTest and CDash sides to make this work.
ToDo: Flesh out more detailed requirements and use cases.
Requirements for Minimum Viable Product
For the initial driving use case, we need a **Minimum Viable Product (MVP) on the CDash site to go along with the MVP on the CMake/CTest side to have the following features/behaviors:
NOTES:
ctest_upload()
and that JSON file could be downloaded as a build file. Anything is fine as long as it is relatively efficient in storage and speed (so it can scale).