Background:
The gradle check job is responsible for running all the verification tasks against a given PR through the github action workflow - which triggers gradle check task on jenkins runner. It waits for the run to finish and and generates aggregated test report ingested to metrics cluster and code coverage report upoloaded to codecov app. Due to numerous tests and dependencies a complete run takes up to 90 mins to finish. Any test failure due to flakiness requires are re-run for green build on the check task.
Acceptance Criteria:
- Initial split of gradle check task:
Run server module : ./gradlew :server:check
Run everything except server module : ./gradlew check -x :server:check
- Both the jenkins jobs run in parallel and the test results and code coverage are retrieved and aggregated as a post action after the jobs finish.
- Report code coverage for all the Integration Tests and Unit Tests (Currently only code coverage is only reported for Units on a given PR)
- Maintain individual Code coverage reports for Integration Tests and Unit tests for a given PR.
Approach:
To demodularize and bring down the gradle check workflow runtime we can start with an initial split of the server module from the root check task and run server module verification tasks in parallel with other modules in the repo. This way we can run tests in :server:internalClusterTest which are highly prone to flakiness independently and can trigger re-run if found a flaky test failing in it. This way the same gh actions triggers two jenkins jobs one with server module and the other with non-server module tests. With this initial split we can get the build time down to 50 mins overall.
Sub Issues:
Enable gradle check jenkins job to run module wise opensearch-build#5759
[ ] - Gradle check Jenkins Yaml workflow changes to trigger two jenkins jobs in parallel and perform post actions like issue comment after fetching the test results.
Background:
The gradle check job is responsible for running all the verification tasks against a given PR through the github action workflow - which triggers gradle check task on jenkins runner. It waits for the run to finish and and generates aggregated test report ingested to metrics cluster and code coverage report upoloaded to codecov app. Due to numerous tests and dependencies a complete run takes up to 90 mins to finish. Any test failure due to flakiness requires are re-run for green build on the check task.
Acceptance Criteria:
Run server module : ./gradlew :server:check
Run everything except server module : ./gradlew check -x :server:check
Approach:
To demodularize and bring down the gradle check workflow runtime we can start with an initial split of the server module from the root check task and run server module verification tasks in parallel with other modules in the repo. This way we can run tests in :server:internalClusterTest which are highly prone to flakiness independently and can trigger re-run if found a flaky test failing in it. This way the same gh actions triggers two jenkins jobs one with server module and the other with non-server module tests. With this initial split we can get the build time down to 50 mins overall.
Sub Issues:
Enable gradle check jenkins job to run module wise opensearch-build#5759
[ ] - Gradle check Jenkins Yaml workflow changes to trigger two jenkins jobs in parallel and perform post actions like issue comment after fetching the test results.