Overview
Jenkins is described in the evidence as an open-source CI server. Its public upstream repository describes it as the “Jenkins automation server” and identifies the implementation language as Java. [jenkins-public-repo] [jenkins-ci-server]
Role in the RISC-V vector accelerator verification flow
In the cited verification environment, the Continuous Integration infrastructure was built using Jenkins. The authors created a set of Jenkins pipelines that interact with each other with the goal of improving design correctness. [jenkins-ci-server]
The CI flow used Jenkins to generate and run tests and to collect metrics from simulations. The recorded metrics included functional coverage, assertion usage such as active and passed assertions, and code coverage. [jenkins-coverage-metrics]
Jenkins pipeline structure
The Jenkins-based infrastructure implemented four pipelines: [jenkins-pipelines]
- New tests — Generates random tests with RISCV-DV, compiles the DUT, executes the binaries, and classifies tests as passed or failed. Passed tests are used to create a regression set, while failed tests are retained for debugging and rechecking until the error is fixed. [new-tests-pipeline]
- Retry — For each change in the main branch of the DUT repository, re-executes the set of failed tests and classifies them again as passed or failed. [retry-pipeline]
- Selection — Runs every day at midnight. If the number of passed tests is above a threshold, tests are ranked by collected coverage, and two regression sets are created: a large set and a small set. [selection-pipeline]
- Regressions — When a DUT change is a candidate to be merged, the small regression set is executed to check correctness. Once per week, the large regression set is executed to ensure recent changes do not break known-good tests. [regressions-pipeline]
Technical significance
Within this verification infrastructure, Jenkins serves as the orchestration layer for random test generation, DUT compilation, binary execution, test-result classification, failed-test retry, coverage-driven regression selection, and scheduled or merge-triggered regression execution. [jenkins-pipelines]
This role connects Jenkins directly to the broader CI/CD infrastructure used by the verification team: the Jenkins pipelines automated recurring validation activities and provided coverage and assertion data used to evaluate simulation results. [jenkins-ci-server] [jenkins-coverage-metrics]