Skip to content

[CI] Support Temurin based JDK pinning#943

Merged
jerboaa merged 1 commit intograalvm:defaultfrom
jerboaa:support_jdk_pin
Feb 24, 2026
Merged

[CI] Support Temurin based JDK pinning#943
jerboaa merged 1 commit intograalvm:defaultfrom
jerboaa:support_jdk_pin

Conversation

@jerboaa
Copy link
Collaborator

@jerboaa jerboaa commented Feb 23, 2026

With this patch it's possible to pin the base JDK version to a specific release. In addition to the generic input value for the jdk key of, say, 21/ga, one can specify a specific Temurin release. For example specifying pinnedrelease:jdk-25.0.3%2B2-ea-beta one would get a base JDK of version 25.0.3+2 EA corresponding to this release: https://github.com/adoptium/temurin25-binaries/releases/tag/jdk-25.0.3%2B2-ea-beta

The value before the : is important to be exactly pinnedrelease. The value after the : denotes the release name. E.g. jdk-25.0.3%2B2-ea-beta.

Currently this is Linux-only.

With this patch it's possible to pin the base JDK version to a specific
release. In addition to the generic input value for the 'jdk' key of, say,
'21/ga', one can specify a specific Temurin release. For example
specifying 'pinnedrelease:jdk-25.0.3%2B2-ea-beta' one would get a base
JDK of version 25.0.3+2 EA corresponding to this release:
https://github.com/adoptium/temurin25-binaries/releases/tag/jdk-25.0.3%2B2-ea-beta

The value before the ':' is important to be exactly 'pinnedrelease'. The
value after the ':' denotes the release name. E.g.
'jdk-25.0.3%2B2-ea-beta'.
@jerboaa jerboaa requested a review from zakkak February 23, 2026 15:18
@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Feb 23, 2026
@jerboaa
Copy link
Collaborator Author

jerboaa commented Feb 23, 2026

Example run with a pinned version is here: https://github.com/jerboaa/graal/actions/runs/22299971510

An example commit to do the pinning was: jerboaa@2bead6f

@jerboaa
Copy link
Collaborator Author

jerboaa commented Feb 23, 2026

CI failure on Aarch64, Mandrel 25 is: graalvm/graalvm-community-jdk25u#10

Mandrel IT failures on 23.1 are: Karm/mandrel-integration-tests#400

Q IT Misc3 on Mandrel 23.1 seems infra related.

All of them unrelated to this patch.

Copy link
Collaborator

@zakkak zakkak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thank you @jerboaa

Up to you whether to merge as is or with the nitpick suggestion.

Comment on lines +253 to +258
if echo ${{ inputs.jdk }} | grep -q 'pinnedrelease'; then
pinned_release_token=$(echo ${{ inputs.jdk }} | cut -d':' -f1)
pinned_release=$(echo ${{ inputs.jdk }} | cut -d':' -f2)
echo "${pinned_release_token}"
echo "${pinned_release}"
if [ "${pinned_release_token}_" == "pinnedrelease_" ] && [ "${pinned_release}_" != "_" ]; then
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpick:

Suggested change
if echo ${{ inputs.jdk }} | grep -q 'pinnedrelease'; then
pinned_release_token=$(echo ${{ inputs.jdk }} | cut -d':' -f1)
pinned_release=$(echo ${{ inputs.jdk }} | cut -d':' -f2)
echo "${pinned_release_token}"
echo "${pinned_release}"
if [ "${pinned_release_token}_" == "pinnedrelease_" ] && [ "${pinned_release}_" != "_" ]; then
pinned_release_token=$(echo ${{ inputs.jdk }} | cut -d':' -f1)
echo "${pinned_release_token}"
if [ "${pinned_release_token}_" == "pinnedrelease_" ]; then
pinned_release=$(echo ${{ inputs.jdk }} | cut -d':' -f2)
echo "${pinned_release}"
if [ "${pinned_release}_" != "_" ]; then

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. I feel the existing approach makes it clearer to say "only do this when pinnedrelease is present. Matter of taste, I guess.

@jerboaa jerboaa merged commit 2c80932 into graalvm:default Feb 24, 2026
192 of 196 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Verified All contributors have signed the Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants