RFR: 8355452: GHA: Test jtreg tier1 on linux-x64 static-jdk
Jiangli Zhou
jiangli at openjdk.org
Mon May 5 21:02:47 UTC 2025
On Mon, 5 May 2025 14:52:38 GMT, Magnus Ihse Bursie <ihse at openjdk.org> wrote:
>> Please review this PR that adds a `test-linux-x64-static` job, which runs tier1 tests on the static-jdk 'release' binary created from the `linux-x64-static` build job in GHA. Following are the details on the changes:
>>
>> .github/actions/get-bundles/action.yml.
>> - Add `static-suffix` parameter. `static-suffix` is added to the bundle name.
>> - Add `static-jdk-path` output.
>> - Unpack static bundles in bundles/static-jdk.
>>
>> .github/actions/upload-bundles/action.yml
>> - Add `static-suffix` parameter. The `static-suffix` is added to the bundle name. The `linux-x64-static` build job sets the parameter as "-static". In other jobs, `static-suffix` not set.
>>
>> .github/workflows/build-linux.yml
>> - Pass `${{ inputs.static-suffix }}` to upload-bundles action, with the `static-suffix` parameter.
>>
>> .github/workflows/main.yml
>> - Build `product-bundles test-bundles static-jdk-bundles` for `linux-x64-static` job.
>> - Add `test-linux-x64-static` job. It currently tests on `release` binary and not `debug` binary, since there are build issue with `debug` due to GHA resource/space limit.
>> - Set `debug-suffix` for the existing non-static test jobs, which test on `debug` binaries.
>>
>> .github/workflows/test.yml
>> - Add `debug-suffix` parameter and replace `debug-suffix: -debug` with `debug-suffix: ${{ inputs.debug-suffix }}` in hs/tier1 tests in the test matrix. The existing test jobs (on non-static JDK) set `debug-suffix` to `-debug` to test on `debug` binaries.
>> - Add `static-suffix` parameter. Add `${{ inputs.static-suffix }}` to the test result artifact name.
>> - Add `run-tests-static`.
>> - Add step for notifying test failures on static JDK.
>>
>> @shipilev Could you please help review this change? Thanks!
>
> .github/workflows/main.yml line 234:
>
>> 232: with:
>> 233: platform: linux-x64
>> 234: make-target: 'product-bundles test-bundles static-jdk-bundles'
>
> This will make us build the tests and the normal JDK twice, once here and once for the normal build-linux-x64 target. That seems like a useless waste of time and computing resources. There must be a better way of doing this.
I haven't tried, but I think it's possible to not requiring building `product-bundles`. The `product-bundles` (regular JDK) is used for compiling the test java sources. I think it's possible to use the boot JDK. I'll try that.
> Just thinking out loud here, what if you also added ` build-linux-x64` to the `needs` list. I guess that would make sure the test bundle is built before trying to execute this. Then the trick will just be to get both the test bundle and the static-jdk bundle downloaded...
That's an interesting idea. I'll give it a try. Thanks!
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24992#discussion_r2074194488
PR Review Comment: https://git.openjdk.org/jdk/pull/24992#discussion_r2074195554
More information about the build-dev
mailing list