graalvm / setup-graalvm

GitHub Action for setting up GraalVM distributions.
https://www.graalvm.org
Universal Permissive License v1.0
195 stars 28 forks source link

Old versions don't seem to work anymore. #56

Closed mbien closed 1 year ago

mbien commented 1 year ago

The readme mentions that 'old' versions can be still used for the java-version field, quote: '8', '11', '16', '19' are supported for older GraalVM releases.

but it doesn't seem to work?

        - name: Set up old GraalVM 11
          uses: graalvm/setup-graalvm@v1
          with:
            java-version: '11'

        - name: Test
          run: java -version

result:

 Error: Failed to download graalvm-jdk-11_linux-x64_bin.tar.gz. Are you sure java-version: '11' is correct?
fniephaus commented 1 year ago

Hi @mbien, sorry for the delay. This has fallen off my radar. For JDK 11, you still need to select a GraalVM version:

        - name: Set up old GraalVM 11
          uses: graalvm/setup-graalvm@v1
          with:
            version: '22.3.3'
            java-version: '11'

I guess we could make your snippet work as well. The question is: what GraalVM release and distro for JDK 11 do you expect if you just want JDK 11? Maybe you don't actually care?

mbien commented 1 year ago

@fniephaus thanks! I must have used the wrong combination of the properties (I tried a few times). The readme could be a bit clearer, but since the old versions are all EOL it is probably not worth updating it.

can confirm that this works for old versions:

        - name: Set up old GraalVM 11
          uses: graalvm/setup-graalvm@v1
          with:
            java-version: '11'
            version: '22.3.3'

for new:

        - name: Set up new GraalVM 17
          uses: graalvm/setup-graalvm@v1
          with:
            java-version: '17.0.8'
            distribution: 'graalvm-community'

The question is: what GraalVM release and distro for JDK 11 do you expect if you just want JDK 11? Maybe you don't actually care?

setup-java allows both, the full version, or just the major/feature version. If only the major/feature version is set, then it will pick the latest release.

        - name: Get latest JDK 17
          uses: actions/setup-java@v3
          with:
#            java-version: 17.0.8
            java-version: 17
            distribution: 'zulu'

so if java-version is set to 17, it could just mirror what the setup-java action does if possible.

closing, thanks again!

fniephaus commented 1 year ago

The readme could be a bit clearer, but since the old versions are all EOL it is probably not worth updating it.

Due to the alignment with OpenJDK, we've made some adjustments in the latest GraalVM release, for example the version input is essentially no longer needed. Do you think it would make sense to provide snippets for different JDK versions in the README ("how to use GraalVM for JDK 8, 11, 17, ...")? Also, feel free to open a PR to improve the README. Contributions are always welcome!

setup-java allows both, the full version, or just the major/feature version. If only the major/feature version is set, then it will pick the latest release.

Correct, and that's exactly why setup-graalvm supports that too, but starting with JDK 17. For JDK 11, this is not possible because there are multiple GraalVM versions providing support for JDK 11, and those have different GraalVM features. All in all, I hope the user experience will improve going forward, now that setup-graalvm has turned into setup-java with some additional GraalVM superpowers. :grinning: