Open gmitch215 opened 3 months ago
I'm using your branch as a workaround
# TODO: replace this once https://github.com/actions/setup-java/pull/637 gets merged.
- uses: gmitch215/setup-java@07ea605e4b1f0f8b0621155fb1722d6094c3e183
with:
distribution: 'jetbrains'
java-version: 17
with an error:
Installed distributions
Error: No supported distribution was found for input jetbrains
is there anything I can do?
See:
Hmm, I'll debug and get back here later.
Seems I just forgot to add it to the map of recognized runtimes to their IDs. Update your commit hash and it should succeed.
My project passed with the following configuration:
- name: Setup JBR 17
uses: gmitch215/setup-java@7f3ab2648f3d20faa20c4fe6e52a455757e0f38a
with:
distribution: 'jetbrains'
java-version: 17
cache: 'gradle'
Output:
It could be picked correctly now!
But seems some libs are missing in this JDK installed.
Execution failed for task ':checkRuntime'.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
> Failed to check JDK distribution: 'jlink', 'jpackage' are missing
JDK distribution path: /Users/runner/hostedtoolcache/Java_JetBrains_jdk/17.0.11-1312.2/arm64/Contents/Home
See https://github.com/Goooler/kotlin-explorer/actions/runs/9575738587/job/26401058613.
The JDK installed by Gradle toolchain
worked fine.
Invalid Java installation found at '/Users/runner/.gradle/jdks/jetbrains_s_r_o_-17-aarch64-os_x/jbrsdk_jcef-17.0.11-osx-aarch64-b1207.24/Contents/Home' (Auto-provisioned by Gradle). It will be re-checked in the next build. This might have performance impact if it keeps failing. Run the 'javaToolchains' task for more details.
Seems we need Binaries for developers
instead of Binaries for launching IntelliJ IDEA
, which is installed by your action. Check https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.11b1312.2.
I switched the URL to the ones listed in the Binaries for Developers
section, still getting the same errors. Going to do some more research.
I guessed correctly! :checkRuntime
seems to pass.
- name: Setup JBR 17
uses: gmitch215/setup-java@99fc2135f7f7b08068e180cb5f29340f9de70720
with:
distribution: 'jetbrains'
java-version: 17
cache: 'gradle'
(This action failed due to below)
Note: Running on windows-latest
seems to fail, so I'll fix that too.
99fc2135f7f7b08068e180cb5f29340f9de70720 works for me now, someone who needs this can ref https://github.com/romainguy/kotlin-explorer/pull/62.
Thanks for your quick response!
Got windows-latest
to build now. Everything else works fine too.
- name: Setup JBR 17
uses: gmitch215/setup-java@e1f4c15facc0cf68c0e764340e374be034e4a859
with:
distribution: 'jetbrains'
java-version: 17
cache: 'gradle'
Thank you @gmitch215, I'm using your branch as a workaround too and can confirm it works fine! It would be great if this contribution could be accepted.
On a relatively complex workflow with a fan-out setup and composite actions that parallelize builds I get rate limit failures from time to time:
Run gmitch215/setup-java@36531813787dd0ff3269feeb1144b35b3d68f927
with:
java-version: 21
java-package: jdk
distribution: jetbrains
check-latest: false
server-id: github
server-username: GITHUB_ACTOR
server-password: GITHUB_TOKEN
overwrite-settings: true
job-status: success
token: ***
Installed distributions
Trying to resolve the latest version from remote
Error: API rate limit exceeded for 52.159.14[7](https://github.com/eskatos/private-repository/actions/runs/1234567890/job/1234567890#step:3:8).63. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)
Is there something that can be done in this action's implementation or on my side?
@eskatos The JetBrains cache-redirector
server does rate limit by IP. To my knowledge, there isn't a way to change the rate limit. The root URL's info page is internal as well, and only accessible by employees.
Your best bet is to do something that changes the IP (not sure if re-running it manually does this, but worth a shot). Unless someone knows how the runner could provide authentication.
Edit: This error page is about the GitHub API, which is something I need to add. However, the above is still true.
Edit 2: Done.
- name: Setup JBR 21
uses: gmitch215/setup-java@b4d76a354bef7187244f74eea4e80e674a7b4b55
with:
distribution: 'jetbrains'
java-version: 21
cache: 'gradle'
Re-running did make the job pass indeed.
This error page is about the GitHub API, which is something I need to add.
Thank you for fixing this!
With b4d76a354bef7187244f74eea4e80e674a7b4b55 I'm getting this:
Trying to resolve the latest version from remote
Error: Bad credentials
@eskatos I forgot GitHub doesn't automatically inject the GITHUB_TOKEN
environment variable on action workflows.
The action should now check if it is provided. Update to this:
- name: Setup JBR 21
uses: gmitch215/setup-java@6d2c5e1f82f180ae79f799f0ed6e3e5efb4e664d
with:
distribution: 'jetbrains'
java-version: 21
cache: 'gradle'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Thanks, works for me!
Hi @HarithaVattikuti,
Sorry about this unsollicited direct ping. I noticed that you recently merged several PRs around JDK support in action/setup-java
. I would like to bring your attention to this PR that adds support for the JetBrains Runtime JDK.
It is very useful to anyone doing Compose Multiplatform development. Some folks, including me, are already using it with success.
Would it be possible to give this PR some love?
+1. Will try to resolve the merge conflicts at some point.
Conflicts have been resolved.
@HarithaVattikuti would love to see this PR get merged.
Hello @gmitch215 , We are working to prioritize this feature. We will update you once we have some feedback.
Hi, @gmitch215 - thanks for your work!!! Small question: for now, we should keep using
uses: gmitch215/setup-java@6d2c5e1f82f180ae79f799f0ed6e3e5efb4e664d
Till this is merged?
Thanks again
Hi, @gmitch215 - thanks for your work!!!
Small question: for now, we should keep using
uses: gmitch215/setup-java@6d2c5e1f82f180ae79f799f0ed6e3e5efb4e664d
Till this is merged?
Thanks again
Sure. The most recent commit for the workaround is available in the top message of this PR.
Current Workaround
Description: This PR adds support for the JetBrains Runtime, which is required in dependencies like jewel and useful for Compose Multiplatform.
The PR uses the binaries listed in
Binaries for Developers
, using theJBRSDK with JCEF
flavor as shown in the releases page. It uses the GitHub API to find and parse versions, then calculates the URL usingcache-redirector.jetbrains.com
with the parsed SemVer, OS, Arch, and build number, which all output a.tar.gz
file. Left a few comments in there for maintainability.Since this uses the GitHub API, you can optionally specify a
GITHUB_TOKEN
environmental variable to increase your rate limit.Related issue:
Check list:
Notes Tested using
jetbrains-installer.test.ts
. Most of the tests were copied from other installers, but some I couldn't figure out how to bring over, so additional work may be required. I also copieddownloadTool
from the Temurin installer.I also executed
npm run build
fordist/setup/index.js
. I think something else was also thrown because I was on TypeScript 5.3, so I'm not sure how that will affectncc
.