github / github/copilot-sdk

[Java]: Refactor test for better use of matrix

オープン
#2,308 コメント 0 件 リアクション 0 件 担当者 1 名 @edburns が担当を希望しています GitHub で見る
enhancement
主要言語
Java
スター
10.5k
フォーク
1.5k
平均マージ
1日 11時間
マージ済み PR(30日)
127

説明

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

```yaml
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.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。