Skip to content

typelevel/download-java action for JVMs #107

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
armanbilge opened this issue Jan 28, 2022 · 5 comments · Fixed by #168
Closed

typelevel/download-java action for JVMs #107

armanbilge opened this issue Jan 28, 2022 · 5 comments · Fixed by #168
Milestone

Comments

@armanbilge
Copy link
Member

Currently, sbt-gh-actions works with JVMs supported natively by actions/setup-java plus GraalVM via DeLaGuardo/setup-graalvm.

I'd like to propose switching to sdkman/sdkman-action for GraalVM and other "alternate" JVMs.

  1. It supports an impressive amount of JVMs, see output of sdk list java below.
  2. It directly integrates with actions/setup-java by spitting out a jdkFile that is consumed by setup-java, and thus all the actual installation/setup is done by setup-java.
  3. The bus factor is almost definitely higher, and SDKMAN is "recognized" by Scala itself: Automate releases to SDKMAN scala/scala3#13885

Pinging @vasilmkd for his thoughts.

================================================================================
Available Java Versions for Linux 64bit
================================================================================
 Vendor        | Use | Version      | Dist    | Status     | Identifier
--------------------------------------------------------------------------------
 Corretto      |     | 17.0.2.8.1   | amzn    |            | 17.0.2.8.1-amzn     
               |     | 17.0.1.12.1  | amzn    |            | 17.0.1.12.1-amzn    
               |     | 17.0.0.35.1  | amzn    |            | 17.0.0.35.1-amzn    
               |     | 11.0.14.9.1  | amzn    |            | 11.0.14.9.1-amzn    
               |     | 11.0.13.8.1  | amzn    |            | 11.0.13.8.1-amzn    
               |     | 11.0.12.7.1  | amzn    |            | 11.0.12.7.1-amzn    
               |     | 8.322.06.2   | amzn    |            | 8.322.06.2-amzn     
               |     | 8.312.07.1   | amzn    |            | 8.312.07.1-amzn     
 Dragonwell    |     | 11.0.12.8    | albba   |            | 11.0.12.8-albba     
               |     | 8.8.9        | albba   |            | 8.8.9-albba         
 GraalVM       |     | 22.0.0.2.r17 | grl     |            | 22.0.0.2.r17-grl    
               |     | 22.0.0.2.r11 | grl     |            | 22.0.0.2.r11-grl    
               |     | 21.3.1.r17   | grl     |            | 21.3.1.r17-grl      
               |     | 21.3.1.r11   | grl     |            | 21.3.1.r11-grl      
               |     | 21.3.1.r8    | grl     |            | 21.3.1.r8-grl       
               |     | 21.3.0.r17   | grl     |            | 21.3.0.r17-grl      
               |     | 21.3.0.r11   | grl     |            | 21.3.0.r11-grl      
               |     | 21.2.0.r16   | grl     |            | 21.2.0.r16-grl      
               |     | 21.2.0.r11   | grl     |            | 21.2.0.r11-grl      
               |     | 21.2.0.r8    | grl     |            | 21.2.0.r8-grl       
               |     | 21.1.0.r8    | grl     |            | 21.1.0.r8-grl       
               |     | 20.3.5.r11   | grl     |            | 20.3.5.r11-grl      
               |     | 20.3.4.r11   | grl     |            | 20.3.4.r11-grl      
               |     | 20.3.3.r11   | grl     |            | 20.3.3.r11-grl      
               |     | 20.3.3.r8    | grl     |            | 20.3.3.r8-grl       
               |     | 20.3.2.r8    | grl     |            | 20.3.2.r8-grl       
               |     | 19.3.6.r11   | grl     |            | 19.3.6.r11-grl      
               |     | 19.3.6.r8    | grl     |            | 19.3.6.r8-grl       
 Java.net      |     | 19.ea.5      | open    |            | 19.ea.5-open        
               |     | 19.ea.1.lm   | open    |            | 19.ea.1.lm-open     
               |     | 18.ea.31     | open    |            | 18.ea.31-open       
               |     | 17.ea.3.pma  | open    |            | 17.ea.3.pma-open    
               |     | 17.0.2       | open    |            | 17.0.2-open         
               |     | 17.0.1       | open    |            | 17.0.1-open         
               |     | 11.0.12      | open    |            | 11.0.12-open        
               |     | 11.0.11      | open    |            | 11.0.11-open        
               |     | 11.0.10      | open    |            | 11.0.10-open        
               |     | 11.0.2       | open    |            | 11.0.2-open         
               |     | 8.0.302      | open    |            | 8.0.302-open        
               |     | 8.0.292      | open    |            | 8.0.292-open        
               |     | 8.0.282      | open    |            | 8.0.282-open        
               |     | 8.0.265      | open    |            | 8.0.265-open        
 Liberica      |     | 17.0.2.fx    | librca  |            | 17.0.2.fx-librca    
               |     | 17.0.2       | librca  |            | 17.0.2-librca       
               |     | 17.0.1.fx    | librca  |            | 17.0.1.fx-librca    
               |     | 17.0.1       | librca  |            | 17.0.1-librca       
               |     | 11.0.14.fx   | librca  |            | 11.0.14.fx-librca   
               |     | 11.0.14      | librca  |            | 11.0.14-librca      
               |     | 11.0.13.fx   | librca  |            | 11.0.13.fx-librca   
               |     | 11.0.13      | librca  |            | 11.0.13-librca      
               |     | 8.0.322.fx   | librca  |            | 8.0.322.fx-librca   
               |     | 8.0.322      | librca  |            | 8.0.322-librca      
               |     | 8.0.312.fx   | librca  |            | 8.0.312.fx-librca   
               |     | 8.0.312      | librca  |            | 8.0.312-librca      
 Liberica NIK  |     | 21.3.0.r17   | nik     |            | 21.3.0.r17-nik      
               |     | 21.3.0.r11   | nik     |            | 21.3.0.r11-nik      
               |     | 21.2         | nik     |            | 21.2-nik            
               |     | 21.1         | nik     |            | 21.1-nik            
               |     | 21.0.0.2     | nik     |            | 21.0.0.2-nik        
 Mandrel       |     | 21.3.0.0     | mandrel |            | 21.3.0.0-mandrel    
               |     | 21.2.0.2     | mandrel |            | 21.2.0.2-mandrel    
               |     | 20.3.3.0     | mandrel |            | 20.3.3.0-mandrel    
 Microsoft     |     | 17.0.1       | ms      |            | 17.0.1-ms           
               |     | 11.0.13      | ms      |            | 11.0.13-ms          
 Oracle        |     | 17.0.2       | oracle  |            | 17.0.2-oracle       
               |     | 17.0.1       | oracle  |            | 17.0.1-oracle       
 SapMachine    |     | 17.0.2       | sapmchn |            | 17.0.2-sapmchn      
               |     | 17.0.1       | sapmchn |            | 17.0.1-sapmchn      
               |     | 11.0.14      | sapmchn |            | 11.0.14-sapmchn     
               |     | 11.0.13      | sapmchn |            | 11.0.13-sapmchn     
 Semeru        |     | 17.0.1       | sem     |            | 17.0.1-sem          
               |     | 11.0.13      | sem     |            | 11.0.13-sem         
               |     | 8.0.312      | sem     |            | 8.0.312-sem         
 Temurin       |     | 17.0.1       | tem     |            | 17.0.1-tem          
               |     | 11.0.14      | tem     |            | 11.0.14-tem         
               |     | 11.0.13      | tem     |            | 11.0.13-tem         
               |     | 8.0.322      | tem     |            | 8.0.322-tem         
               |     | 8.0.312      | tem     |            | 8.0.312-tem         
 Trava         |     | 11.0.9       | trava   |            | 11.0.9-trava        
               |     | 8.0.232      | trava   |            | 8.0.232-trava       
 Zulu          |     | 17.0.2       | zulu    |            | 17.0.2-zulu         
               |     | 17.0.2.fx    | zulu    |            | 17.0.2.fx-zulu      
               |     | 17.0.1       | zulu    |            | 17.0.1-zulu         
               |     | 17.0.1.fx    | zulu    |            | 17.0.1.fx-zulu      
               |     | 11.0.14      | zulu    |            | 11.0.14-zulu        
               |     | 11.0.14.fx   | zulu    |            | 11.0.14.fx-zulu     
               |     | 11.0.13      | zulu    |            | 11.0.13-zulu        
               |     | 11.0.13.fx   | zulu    |            | 11.0.13.fx-zulu     
               |     | 8.0.322      | zulu    |            | 8.0.322-zulu        
               |     | 8.0.322.fx   | zulu    |            | 8.0.322.fx-zulu     
               |     | 8.0.312      | zulu    |            | 8.0.312-zulu        
               |     | 8.0.312.fx   | zulu    |            | 8.0.312.fx-zulu     
               |     | 7.0.332      | zulu    |            | 7.0.332-zulu        
               |     | 7.0.322      | zulu    |            | 7.0.322-zulu        
               |     | 6.0.119      | zulu    |            | 6.0.119-zulu        
================================================================================
@vasilmkd
Copy link
Member

I am in favor of switching completely to sdkman, for all JDKs.

@rossabaker
Copy link
Member

Would that retire the jdk-index project then?

@vasilmkd
Copy link
Member

It's already not used by sbt-github-actions anymore.

@armanbilge
Copy link
Member Author

I am in favor of switching completely to sdkman, for all JDKs.

Do you mean even for the ones natively support by actions/setup-java? I think those are specially cached in the GH runners.

@armanbilge armanbilge added this to the v0.5.0 milestone Jan 28, 2022
@armanbilge armanbilge changed the title sdkman-action for alternate JVMs typelevel/download-java action for JVMs Feb 18, 2022
@armanbilge
Copy link
Member Author

armanbilge commented Feb 18, 2022

Update on this: @vasilmkd and I decided to go in a different direction. We've created our own GH action typelevel/download-java that integrates Vasil's jdk-index with the official actions/setup-java.

It's essentially a tiny bash script that looks up a JDK in the index, downloads it, then points setup-java at that file for installation. This gives us full capability to keep everything up-to-date and offer JVMs that are not provided by setup-java such as GraalVM and Amazon Corretto.

This will be how we manage JDKs in sbt-typelevel.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants