In common CI/CD use-cases a lot of the space is being consumed by test reports. This data is stored within JENKINS_HOME, and the current storage format requires huge overheads when retrieving statistics and, especially, trends. In order to display trends, each report has to be loaded and then processed in-memory.
The main purpose of externalising Test Results is to optimize Jenkins logic by querying the desired data from specialized external storages, e.g. from Document-based databases like Elasticsearch. According to the current plan, JUnit Plugin will be extended in order to support such external storage in its APIs being widely used by test reporting plugins.
Status:
Foundation work started
Prototype API: #110
Continued in: #141
Todo:
Test strategy:
The junit plugin will provide a sample implementation using h2 database that can be used to verify pluggable storage functionality.
The Postgres implementation will be able to use something like test containers and replicate a similar test inside it's own plugin.
Performance tests will be written using the Microbenchmark harness, see https://www.jenkins.io/blog/2019/06/21/performance-testing-jenkins/
Graduation criteria
This API will be released in Beta initially and will likely change as it's developed.
- At least one production ready pluggable storage implementation
- Benchmarks showing improvements
- Blog on Jenkins.io
In common CI/CD use-cases a lot of the space is being consumed by test reports. This data is stored within JENKINS_HOME, and the current storage format requires huge overheads when retrieving statistics and, especially, trends. In order to display trends, each report has to be loaded and then processed in-memory.
The main purpose of externalising Test Results is to optimize Jenkins logic by querying the desired data from specialized external storages, e.g. from Document-based databases like Elasticsearch. According to the current plan, JUnit Plugin will be extended in order to support such external storage in its APIs being widely used by test reporting plugins.
Status:
Foundation work started
Prototype API: #110
Continued in: #141
Todo:
Test strategy:
The junit plugin will provide a sample implementation using h2 database that can be used to verify pluggable storage functionality.
The Postgres implementation will be able to use something like test containers and replicate a similar test inside it's own plugin.
Performance tests will be written using the Microbenchmark harness, see https://www.jenkins.io/blog/2019/06/21/performance-testing-jenkins/
Graduation criteria
This API will be released in Beta initially and will likely change as it's developed.