[Java]: Refactor test for better use of matrix

Open
#2,308 0 comments 0 reactions 1 assignee View on GitHub

@edburns is already working on this.

Since Aug 10, 2026.

Assessment

This issue has not been assessed yet.

Description

enhancement

Predecessor: #1917

Successor: #2577

Problem

The java-sdk-tests.yml workflow has two separate jobs — java-sdk and java-sdk-inprocess — that duplicate ~20 lines of identical setup (checkout, setup-java, setup-node). This duplication makes maintenance harder: action version pin bumps must be applied in two places.

Proposal

Add a transport: [default, inprocess] dimension to the existing test-jdk matrix in the java-sdk job, and remove the standalone java-sdk-inprocess job.

Matrix shape
strategy:
  fail-fast: false
  matrix:
    test-jdk: ["25", "17"]
    transport: ["default", "inprocess"]
    exclude:
      - test-jdk: "17"
        transport: "inprocess"

The exclude prevents the JDK-17 + inprocess combination, which is not meaningful (the native library targets a single JDK).

Conditional step adjustments
  • Steps already guarded with if: matrix.test-jdk == '25' gain an additional && matrix.transport == 'default' where they should not run for the inprocess leg (e.g., spotless, javadoc, doc-version test).
  • The mvn invocation switches based on matrix.transport: mvn clean verify -Pinprocess for inprocess, the existing split build-then-test flow for default.
  • Artifact names and test report titles include the transport value for clarity.
Benefits
  • Less duplication — shared setup steps defined once.
  • Easier maintenance — action pin bumps in one place.
  • Consistent naming — job names like Java SDK Tests (JDK 25, inprocess) clearly identify the configuration.
Risks
  • Slightly more complex if: conditionals, but manageable given the existing pattern.
Dominant language
Java
Stars
10.5k
Forks
1.5k
Avg merge
1d 12h
Merged PRs (30d)
133

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from github/copilot-sdk

All issues in github/copilot-sdk

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.