vlsi opened a new pull request, #6716:
URL: https://github.com/apache/jmeter/pull/6716

   ### Why
   
   `matrix.js` builds the CI test matrix, and each row's `java_vendor` is meant 
to pin the JDK vendor for the test toolchain (`jdkTestVendor` → Gradle). The 
per-row post-processing read it from `v.java_distribution.vendor` *after* 
`v.java_distribution` had been reassigned to its string `value`. Reading 
`.vendor` off a string yields `undefined`, so `jdkTestVendor` reached Gradle 
empty and the test toolchain was never pinned to the matrix vendor — tests 
could run on any installed JDK of the matching version, which defeats varying 
the distribution across rows.
   
   ### What
   
   Destructure the axis object before overwriting the field, so the read no 
longer depends on statement order:
   
   ```js
   const {value: javaDistribution, vendor: javaVendor} = v.java_distribution;
   v.java_distribution = javaDistribution;
   v.java_vendor = javaVendor;
   ```
   
   ### How to verify
   
   `npm ci --prefix .github/workflows && MATRIX_JOBS=8 node 
.github/workflows/matrix.js` — every row now carries a real `java_vendor` 
(`amazon`, `bellsoft`, `microsoft`, `oracle`, `eclipse`, `azul`) instead of 
`undefined`.
   
   This makes the test toolchain actually request the matrix vendor. With 
`org.gradle.java.installations.auto-download=false`, the workflow already 
provisions a matching-vendor JDK for the test version via `actions/setup-java` 
(`distribution: ${{ matrix.java_distribution }}`), so the constraint is 
satisfiable.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to