Skip to content

[META] Split server module from Gradle Check Job #19378

@Divyaasm

Description

@Divyaasm

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:

  1. Initial split of gradle check task:
    Run server module : ./gradlew :server:check
    Run everything except server module : ./gradlew check -x :server:check
  2. 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.
  3. Report code coverage for all the Integration Tests and Unit Tests (Currently only code coverage is only reported for Units on a given PR)
  4. 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.

Metadata

Metadata

Assignees

Labels

MetaMeta issue, not directly linked to a PR

Type

No type
No fields configured for issues without a type.

Projects

Status

👀 In Review

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions