Compare commits

...

4 Commits

Author SHA1 Message Date
Clint Valentine 3c471f3285
Merge 18d114c65a into 6ba5449b7d 2025-11-17 13:51:29 +08:00
priya-kinthali 6ba5449b7d
Enhance error logging for network failures to include endpoint/IP details, add retry mechanism and update workflows to use macos-15-intel (#946)
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} - multiple jdks - ${{ matrix.os }} (sapmachine, macos-latest) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} - multiple jdks - ${{ matrix.os }} (sapmachine, ubuntu-latest) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} - multiple jdks - ${{ matrix.os }} (sapmachine, windows-latest) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} - multiple jdks - ${{ matrix.os }} (temurin, macos-latest) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} - multiple jdks - ${{ matrix.os }} (temurin, ubuntu-latest) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} - multiple jdks - ${{ matrix.os }} (temurin, windows-latest) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} - multiple jdks - ${{ matrix.os }} (zulu, macos-latest) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} - multiple jdks - ${{ matrix.os }} (zulu, ubuntu-latest) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} - multiple jdks - ${{ matrix.os }} (zulu, windows-latest) (push) Blocked by required conditions Details
Validate Java e2e / zulu ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} (macos-15-intel, 15.0.0-ea.14) (push) Blocked by required conditions Details
Validate Java e2e / zulu ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} (macos-15-intel, 17-ea) (push) Blocked by required conditions Details
Validate Java e2e / zulu ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} (ubuntu-latest, 15.0.0-ea.14) (push) Blocked by required conditions Details
Validate Java e2e / zulu ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} (ubuntu-latest, 17-ea) (push) Blocked by required conditions Details
Validate Java e2e / zulu ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} (windows-latest, 15.0.0-ea.14) (push) Blocked by required conditions Details
Validate Java e2e / zulu ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} (windows-latest, 17-ea) (push) Blocked by required conditions Details
Validate Java e2e / temurin ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} (macos-latest, 17-ea) (push) Blocked by required conditions Details
Validate Java e2e / temurin ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} (ubuntu-latest, 17-ea) (push) Blocked by required conditions Details
Validate Java e2e / temurin ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} (windows-latest, 17-ea) (push) Blocked by required conditions Details
Validate Java e2e / sapmachine ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} (macos-latest, 17-ea) (push) Blocked by required conditions Details
Validate Java e2e / sapmachine ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} (macos-latest, 21-ea) (push) Blocked by required conditions Details
Validate Java e2e / sapmachine ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} (ubuntu-latest, 17-ea) (push) Blocked by required conditions Details
Validate Java e2e / sapmachine ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} (ubuntu-latest, 21-ea) (push) Blocked by required conditions Details
Validate Java e2e / sapmachine ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} (windows-latest, 17-ea) (push) Blocked by required conditions Details
Validate Java e2e / sapmachine ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} (windows-latest, 21-ea) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (corretto, jre, windows-latest, 8) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (jetbrains, jdk+ft, ubuntu-latest, 17) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (jetbrains, jdk+ft, ubuntu-latest, 21) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (jetbrains, jdk+jcef, ubuntu-latest, 11) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (jetbrains, jdk+jcef, ubuntu-latest, 17) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (jetbrains, jdk+jcef, ubuntu-latest, 21) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (jetbrains, jre+ft, ubuntu-latest, 17) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (jetbrains, jre+ft, ubuntu-latest, 21) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (jetbrains, jre+jcef, ubuntu-latest, 11) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (jetbrains, jre+jcef, ubuntu-latest, 17) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (jetbrains, jre+jcef, ubuntu-latest, 21) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (jetbrains, jre, macos-15-intel, 17.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (jetbrains, jre, ubuntu-latest, 17.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (jetbrains, jre, windows-latest, 17.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (liberica, jdk+fx, ubuntu-latest, 21) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (liberica, jre+fx, ubuntu-latest, 11) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (liberica, jre, macos-15-intel, 17.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (liberica, jre, ubuntu-latest, 17.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (liberica, jre, windows-latest, 17.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (sapmachine, jre, macos-15-intel, 17.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (sapmachine, jre, ubuntu-latest, 17.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (sapmachine, jre, windows-latest, 17.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (semeru, jre, macos-15-intel, 17.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (semeru, jre, ubuntu-latest, 17.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (semeru, jre, windows-latest, 17.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (temurin, jre, macos-15-intel, 17.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (temurin, jre, ubuntu-latest, 17.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (temurin, jre, windows-latest, 17.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (zulu, jdk+fx, ubuntu-latest, 21.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (zulu, jre+fx, ubuntu-latest, 21) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (zulu, jre, macos-15-intel, 17.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (zulu, jre, ubuntu-latest, 17.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} (zulu, jre, windows-latest, 17.0) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (jdk-${{ matrix.architecture }}) - ${{ matrix.os }} (corretto, ubuntu-22.04, 11) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (jdk-${{ matrix.architecture }}) - ${{ matrix.os }} (corretto, windows-latest, 11) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (jdk-${{ matrix.architecture }}) - ${{ matrix.os }} (liberica, ubuntu-22.04, 11) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (jdk-${{ matrix.architecture }}) - ${{ matrix.os }} (liberica, windows-latest, 11) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (jdk-${{ matrix.architecture }}) - ${{ matrix.os }} (zulu, ubuntu-22.04, 11) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} ${{ matrix.version }} (jdk-${{ matrix.architecture }}) - ${{ matrix.os }} (zulu, windows-latest, 11) (push) Blocked by required conditions Details
Validate Java e2e / ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} (corretto, .java-version, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} (corretto, .java-version, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} (corretto, .java-version, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} (corretto, .tool-versions, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} (corretto, .tool-versions, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} (corretto, .tool-versions, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} (microsoft, .java-version, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} (microsoft, .java-version, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} (microsoft, .java-version, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} (microsoft, .tool-versions, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} (microsoft, .tool-versions, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} (microsoft, .tool-versions, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} (temurin, .java-version, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} (temurin, .java-version, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} (temurin, .java-version, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} (temurin, .tool-versions, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} (temurin, .tool-versions, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} (temurin, .tool-versions, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (corretto, .java-version, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (corretto, .java-version, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (corretto, .java-version, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (corretto, .tool-versions, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (corretto, .tool-versions, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (corretto, .tool-versions, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (liberica, .java-version, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (liberica, .java-version, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (liberica, .java-version, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (liberica, .tool-versions, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (liberica, .tool-versions, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (liberica, .tool-versions, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (microsoft, .java-version, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (microsoft, .java-version, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (microsoft, .java-version, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (microsoft, .tool-versions, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (microsoft, .tool-versions, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (microsoft, .tool-versions, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (temurin, .java-version, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (temurin, .java-version, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (temurin, .java-version, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (temurin, .tool-versions, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (temurin, .tool-versions, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (temurin, .tool-versions, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (zulu, .java-version, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (zulu, .java-version, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (zulu, .java-version, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (zulu, .tool-versions, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (zulu, .tool-versions, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X - ${{ matrix.os }} (zulu, .tool-versions, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} (adopt, .java-version, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} (adopt, .java-version, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} (adopt, .java-version, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} (adopt, .tool-versions, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} (adopt, .tool-versions, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} (adopt, .tool-versions, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} (adopt-openj9, .java-version, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} (adopt-openj9, .java-version, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} (adopt-openj9, .java-version, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} (adopt-openj9, .tool-versions, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} (adopt-openj9, .tool-versions, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} (adopt-openj9, .tool-versions, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} (zulu, .java-version, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} (zulu, .java-version, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} (zulu, .java-version, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} (zulu, .tool-versions, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} (zulu, .tool-versions, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} (zulu, .tool-versions, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} (adopt, .java-version, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} (adopt, .java-version, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} (adopt, .java-version, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} (adopt, .tool-versions, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} (adopt, .tool-versions, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} (adopt, .tool-versions, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} (liberica, .java-version, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} (liberica, .java-version, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} (liberica, .java-version, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} (liberica, .tool-versions, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} (liberica, .tool-versions, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} (liberica, .tool-versions, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} (zulu, .java-version, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} (zulu, .java-version, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} (zulu, .java-version, windows-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} (zulu, .tool-versions, macos-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} (zulu, .tool-versions, ubuntu-latest) (push) Waiting to run Details
Validate Java e2e / ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} (zulu, .tool-versions, windows-latest) (push) Waiting to run Details
Basic validation / Basic validation (push) Has been cancelled Details
Check dist/ / Check dist/ (push) Has been cancelled Details
CodeQL analysis / CodeQL analysis (push) Has been cancelled Details
Validate cache with cache-dependency-path option / gradle1-save (macos-latest) (push) Has been cancelled Details
Validate cache with cache-dependency-path option / gradle1-save (ubuntu-latest) (push) Has been cancelled Details
Validate cache with cache-dependency-path option / gradle1-save (windows-latest) (push) Has been cancelled Details
Validate cache / gradle-save (macos-15-intel) (push) Has been cancelled Details
Validate cache / gradle-save (ubuntu-latest) (push) Has been cancelled Details
Validate cache / gradle-save (windows-latest) (push) Has been cancelled Details
Validate cache / maven-save (macos-15-intel) (push) Has been cancelled Details
Validate cache / maven-save (ubuntu-latest) (push) Has been cancelled Details
Validate cache / maven-save (windows-latest) (push) Has been cancelled Details
Validate cache / sbt-save (macos-15-intel) (push) Has been cancelled Details
Validate cache / sbt-save (ubuntu-22.04) (push) Has been cancelled Details
Validate cache / sbt-save (windows-latest) (push) Has been cancelled Details
Validate local file / Validate installation from local file Adopt (macos-latest) (push) Has been cancelled Details
Validate local file / Validate installation from local file Adopt (ubuntu-latest) (push) Has been cancelled Details
Validate local file / Validate installation from local file Adopt (windows-latest) (push) Has been cancelled Details
Validate local file / Validate installation from local file Zulu (macos-latest) (push) Has been cancelled Details
Validate local file / Validate installation from local file Zulu (ubuntu-latest) (push) Has been cancelled Details
Validate local file / Validate installation from local file Zulu (windows-latest) (push) Has been cancelled Details
Validate local file / Validate installation from local file Eclipse Temurin (macos-latest) (push) Has been cancelled Details
Validate local file / Validate installation from local file Eclipse Temurin (ubuntu-latest) (push) Has been cancelled Details
Validate local file / Validate installation from local file Eclipse Temurin (windows-latest) (push) Has been cancelled Details
Validate publishing functionality / Validate settings.xml (macos-latest) (push) Has been cancelled Details
Validate publishing functionality / Validate settings.xml (ubuntu-latest) (push) Has been cancelled Details
Validate publishing functionality / Validate settings.xml (windows-latest) (push) Has been cancelled Details
Validate publishing functionality / settings.xml is overwritten if flag is true (macos-latest) (push) Has been cancelled Details
Validate publishing functionality / settings.xml is overwritten if flag is true (ubuntu-latest) (push) Has been cancelled Details
Validate publishing functionality / settings.xml is overwritten if flag is true (windows-latest) (push) Has been cancelled Details
Validate publishing functionality / settings.xml is not overwritten if flag is false (macos-latest) (push) Has been cancelled Details
Validate publishing functionality / settings.xml is not overwritten if flag is false (ubuntu-latest) (push) Has been cancelled Details
Validate publishing functionality / settings.xml is not overwritten if flag is false (windows-latest) (push) Has been cancelled Details
Validate publishing functionality / settings.xml in custom location (macos-latest) (push) Has been cancelled Details
Validate publishing functionality / settings.xml in custom location (ubuntu-latest) (push) Has been cancelled Details
Validate publishing functionality / settings.xml in custom location (windows-latest) (push) Has been cancelled Details
Licensed / Licensed (push) Has been cancelled Details
Validate cache with cache-dependency-path option / gradle1-restore (macos-latest) (push) Has been cancelled Details
Validate cache with cache-dependency-path option / gradle1-restore (ubuntu-latest) (push) Has been cancelled Details
Validate cache with cache-dependency-path option / gradle1-restore (windows-latest) (push) Has been cancelled Details
Validate cache with cache-dependency-path option / gradle2-restore (macos-latest) (push) Has been cancelled Details
Validate cache with cache-dependency-path option / gradle2-restore (ubuntu-latest) (push) Has been cancelled Details
Validate cache with cache-dependency-path option / gradle2-restore (windows-latest) (push) Has been cancelled Details
Validate cache / gradle-restore (macos-15-intel) (push) Has been cancelled Details
Validate cache / gradle-restore (ubuntu-latest) (push) Has been cancelled Details
Validate cache / gradle-restore (windows-latest) (push) Has been cancelled Details
Validate cache / maven-restore (macos-15-intel) (push) Has been cancelled Details
Validate cache / maven-restore (ubuntu-latest) (push) Has been cancelled Details
Validate cache / maven-restore (windows-latest) (push) Has been cancelled Details
Validate cache / sbt-restore (macos-15-intel) (push) Has been cancelled Details
Validate cache / sbt-restore (ubuntu-22.04) (push) Has been cancelled Details
Validate cache / sbt-restore (windows-latest) (push) Has been cancelled Details
Update configuration files / Update configuration files (push) Has been cancelled Details
* enhance error logging and implement retry

* Replace macos-13 with macos-15-intel

* refactored code based on Copilot suggestions
2025-11-13 13:34:50 -06:00
the-mod de5a937a1d
adds microsoft openjdk25 builds (#927)
* adds microsoft java 25 build

adds microsoft java 25 build

* tests and formatting

* Add Microsoft distribution for version 25 on multiple OS
2025-10-27 15:17:49 -05:00
clintval 18d114c65a
Add caching for the Mill build tool 2025-05-05 13:08:30 -10:00
16 changed files with 647 additions and 198 deletions

View File

@ -21,7 +21,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-13, windows-latest, ubuntu-latest] os: [macos-15-intel, windows-latest, ubuntu-latest]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v5 uses: actions/checkout@v5
@ -46,7 +46,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-13, windows-latest, ubuntu-latest] os: [macos-15-intel, windows-latest, ubuntu-latest]
needs: gradle-save needs: gradle-save
steps: steps:
- name: Checkout - name: Checkout
@ -70,7 +70,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-13, windows-latest, ubuntu-latest] os: [macos-15-intel, windows-latest, ubuntu-latest]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v5 uses: actions/checkout@v5
@ -93,7 +93,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-13, windows-latest, ubuntu-latest] os: [macos-15-intel, windows-latest, ubuntu-latest]
needs: maven-save needs: maven-save
steps: steps:
- name: Checkout - name: Checkout
@ -121,7 +121,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-13, windows-latest, ubuntu-22.04] os: [macos-15-intel, windows-latest, ubuntu-22.04]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v5 uses: actions/checkout@v5
@ -133,7 +133,7 @@ jobs:
java-version: '11' java-version: '11'
cache: sbt cache: sbt
- name: Setup SBT - name: Setup SBT
if: matrix.os == 'macos-13' if: matrix.os == 'macos-15-intel'
run: | run: |
echo ""Installing SBT..."" echo ""Installing SBT...""
brew install sbt brew install sbt
@ -141,7 +141,7 @@ jobs:
run: sbt update run: sbt update
- name: Check files to cache on macos-latest - name: Check files to cache on macos-latest
if: matrix.os == 'macos-13' if: matrix.os == 'macos-15-intel'
run: | run: |
if [ ! -d ~/Library/Caches/Coursier ]; then if [ ! -d ~/Library/Caches/Coursier ]; then
echo "::error::The ~/Library/Caches/Coursier directory does not exist unexpectedly" echo "::error::The ~/Library/Caches/Coursier directory does not exist unexpectedly"
@ -170,7 +170,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-13, windows-latest, ubuntu-22.04] os: [macos-15-intel, windows-latest, ubuntu-22.04]
needs: sbt-save needs: sbt-save
steps: steps:
- name: Checkout - name: Checkout
@ -184,7 +184,7 @@ jobs:
cache: sbt cache: sbt
- name: Confirm that ~/Library/Caches/Coursier directory has been made - name: Confirm that ~/Library/Caches/Coursier directory has been made
if: matrix.os == 'macos-13' if: matrix.os == 'macos-15-intel'
run: | run: |
if [ ! -d ~/Library/Caches/Coursier ]; then if [ ! -d ~/Library/Caches/Coursier ]; then
echo "::error::The ~/Library/Caches/Coursier directory does not exist unexpectedly" echo "::error::The ~/Library/Caches/Coursier directory does not exist unexpectedly"
@ -207,3 +207,93 @@ jobs:
exit 1 exit 1
fi fi
ls ~/.cache/coursier ls ~/.cache/coursier
mill-save:
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
working-directory: __tests__/cache/mill
strategy:
fail-fast: false
matrix:
os: [macos-13, windows-latest, ubuntu-22.04]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run setup-java with the cache for mill
uses: ./
id: setup-java
with:
distribution: 'adopt'
java-version: '11'
cache: mill
- name: Create files to cache
run: ./mill --disable-ticker _.compile
- name: Check files to cache on macos-latest
if: matrix.os == 'macos-13'
run: |
if [ ! -d ~/.cache/mill/download ]; then
echo "::error::The ~/.cache/mill/download directory does not exist unexpectedly"
exit 1
fi
- name: Check files to cache on windows-latest
if: matrix.os == 'windows-latest'
run: |
if [ ! -d %USERPROFILE%/.cache/mill/download ]; then
echo "::error::The %USERPROFILE%/.cache/mill/download directory does not exist unexpectedly"
exit 1
fi
- name: Check files to cache on ubuntu-latest
if: matrix.os == 'ubuntu-latest'
run: |
if [ ! -d ~/.cache/mill/download ]; then
echo "::error::The ~/.cache/mill/download directory does not exist unexpectedly"
exit 1
fi
mill-restore:
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
working-directory: __tests__/cache/mill
strategy:
fail-fast: false
matrix:
os: [macos-13, windows-latest, ubuntu-22.04]
needs: mill-save
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run setup-java with the cache for mill
uses: ./
id: setup-java
with:
distribution: 'adopt'
java-version: '11'
cache: mill
- name: Confirm that ~/.cache/mill/download directory has been made
if: matrix.os == 'macos-13'
run: |
if [ ! -d ~/.cache/mill/download ]; then
echo "::error::The ~/.cache/mill/download directory does not exist unexpectedly"
exit 1
fi
ls ~/.cache/mill/download
- name: Confirm that %USERPROFILE%/.cache/mill/download directory has been made
if: matrix.os == 'windows-latest'
run: |
if [ ! -d %USERPROFILE%/.cache/mill/download ]; then
echo "::error::The %USERPROFILE%/.cache/mill/download directory does not exist unexpectedly"
exit 1
fi
ls %USERPROFILE%/.cache/mill/download
- name: Confirm that ~/.cache/mill/download directory has been made
if: matrix.os == 'ubuntu-latest'
run: |
if [ ! -d ~/.cache/mill/download ]; then
echo "::error::The ~/.cache/mill/download directory does not exist unexpectedly"
exit 1
fi
ls ~/.cache/mill/download

View File

@ -20,7 +20,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-13, windows-latest, ubuntu-latest] os: [macos-15-intel, windows-latest, ubuntu-latest]
distribution: [ distribution: [
'temurin', 'temurin',
'adopt', 'adopt',
@ -39,10 +39,19 @@ jobs:
- distribution: microsoft - distribution: microsoft
version: 8 version: 8
- distribution: dragonwell - distribution: dragonwell
os: macos-13 os: macos-15-intel
include: include:
- distribution: microsoft
os: windows-latest
version: 25
- distribution: microsoft
os: ubuntu-latest
version: 25
- distribution: microsoft
os: macos-latest
version: 25
- distribution: oracle - distribution: oracle
os: macos-13 os: macos-15-intel
version: 17 version: 17
- distribution: oracle - distribution: oracle
os: windows-latest os: windows-latest
@ -220,7 +229,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-13, windows-latest, ubuntu-latest] os: [macos-15-intel, windows-latest, ubuntu-latest]
version: ['17-ea', '15.0.0-ea.14'] version: ['17-ea', '15.0.0-ea.14']
steps: steps:
- name: Checkout - name: Checkout
@ -286,7 +295,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-13, windows-latest, ubuntu-latest] os: [macos-15-intel, windows-latest, ubuntu-latest]
distribution: distribution:
['temurin', 'zulu', 'liberica', 'semeru', 'sapmachine', 'jetbrains'] ['temurin', 'zulu', 'liberica', 'semeru', 'sapmachine', 'jetbrains']
java-package: ['jre'] java-package: ['jre']

3
.gitignore vendored
View File

@ -1,3 +1,6 @@
# Ignore Scala IDE files
.metals/
# Ignore node_modules, ncc is used to compile nodejs modules into a single file # Ignore node_modules, ncc is used to compile nodejs modules into a single file
node_modules/ node_modules/
__tests__/runner/* __tests__/runner/*

View File

@ -14,6 +14,7 @@ The `setup-java` action provides the following functionality for GitHub Actions
- Caching dependencies managed by Apache Maven. - Caching dependencies managed by Apache Maven.
- Caching dependencies managed by Gradle. - Caching dependencies managed by Gradle.
- Caching dependencies managed by sbt. - Caching dependencies managed by sbt.
- Caching dependencies managed by Mill.
- [Maven Toolchains declaration](https://maven.apache.org/guides/mini/guide-using-toolchains.html) for specified JDK versions. - [Maven Toolchains declaration](https://maven.apache.org/guides/mini/guide-using-toolchains.html) for specified JDK versions.
This action allows you to work with Java and Scala projects. This action allows you to work with Java and Scala projects.
@ -48,7 +49,7 @@ For information about the latest releases, recent updates, and newly supported d
- `check-latest`: Setting this option makes the action to check for the latest available version for the version spec. - `check-latest`: Setting this option makes the action to check for the latest available version for the version spec.
- `cache`: Quick [setup caching](#caching-packages-dependencies) for the dependencies managed through one of the predefined package managers. It can be one of "maven", "gradle" or "sbt". - `cache`: Quick [setup caching](#caching-packages-dependencies) for the dependencies managed through one of the predefined package managers. It can be one of "maven", "gradle", "sbt", or "mill".
- `cache-dependency-path`: The path to a dependency file: pom.xml, build.gradle, build.sbt, etc. This option can be used with the `cache` option. If this option is omitted, the action searches for the dependency file in the entire repository. This option supports wildcards and a list of file names for caching multiple dependencies. - `cache-dependency-path`: The path to a dependency file: pom.xml, build.gradle, build.sbt, etc. This option can be used with the `cache` option. If this option is omitted, the action searches for the dependency file in the entire repository. This option supports wildcards and a list of file names for caching multiple dependencies.
@ -130,11 +131,12 @@ Currently, the following distributions are supported:
**NOTE:** To comply with the GraalVM Free Terms and Conditions (GFTC) license, it is recommended to use GraalVM JDK 17 version 17.0.12, as this is the only version of GraalVM JDK 17 available under the GFTC license. Additionally, it is encouraged to consider upgrading to GraalVM JDK 21, which offers the latest features and improvements. **NOTE:** To comply with the GraalVM Free Terms and Conditions (GFTC) license, it is recommended to use GraalVM JDK 17 version 17.0.12, as this is the only version of GraalVM JDK 17 available under the GFTC license. Additionally, it is encouraged to consider upgrading to GraalVM JDK 21, which offers the latest features and improvements.
### Caching packages dependencies ### Caching packages dependencies
The action has a built-in functionality for caching and restoring dependencies. It uses [toolkit/cache](https://github.com/actions/toolkit/tree/main/packages/cache) under hood for caching dependencies but requires less configuration settings. Supported package managers are gradle, maven and sbt. The format of the used cache key is `setup-java-${{ platform }}-${{ packageManager }}-${{ fileHash }}`, where the hash is based on the following files: The action has a built-in functionality for caching and restoring dependencies. It uses [toolkit/cache](https://github.com/actions/toolkit/tree/main/packages/cache) under hood for caching dependencies but requires less configuration settings. Supported package managers are Gradle, Maven, sbt, and Mill. The format of the used cache key is `setup-java-${{ platform }}-${{ packageManager }}-${{ fileHash }}`, where the hash is based on the following files:
- gradle: `**/*.gradle*`, `**/gradle-wrapper.properties`, `buildSrc/**/Versions.kt`, `buildSrc/**/Dependencies.kt`, `gradle/*.versions.toml`, and `**/versions.properties` - Gradle: `**/*.gradle*`, `**/gradle-wrapper.properties`, `buildSrc/**/Versions.kt`, `buildSrc/**/Dependencies.kt`, `gradle/*.versions.toml`, and `**/versions.properties`
- maven: `**/pom.xml` - Maven: `**/pom.xml`
- sbt: all sbt build definition files `**/*.sbt`, `**/project/build.properties`, `**/project/**.scala`, `**/project/**.sbt` - sbt: all sbt build definition files `**/*.sbt`, `**/project/build.properties`, `**/project/**.scala`, `**/project/**.sbt`
- Mill: `**/build.sc`, `**/*.sc`, `**/mill`, `**/.mill-version`, and `**/.config/mill-version`
When the option `cache-dependency-path` is specified, the hash is based on the matching file. This option supports wildcards and a list of file names, and is especially useful for monorepos. When the option `cache-dependency-path` is specified, the hash is based on the matching file. This option supports wildcards and a list of file names, and is especially useful for monorepos.
@ -142,7 +144,7 @@ The workflow output `cache-hit` is set to indicate if an exact match was found f
The cache input is optional, and caching is turned off by default. The cache input is optional, and caching is turned off by default.
#### Caching gradle dependencies #### Caching Gradle dependencies
```yaml ```yaml
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
@ -157,7 +159,7 @@ steps:
- run: ./gradlew build --no-daemon - run: ./gradlew build --no-daemon
``` ```
#### Caching maven dependencies #### Caching Maven dependencies
```yaml ```yaml
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
@ -187,6 +189,21 @@ steps:
run: sbt package run: sbt package
``` ```
#### Caching Mill dependencies
```yaml
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
cache: 'mill'
cache-dependency-path: | # optional
sub-project/build.sc
- name: Build with Mill
run: ./mill _.compile
```
#### Cache segment restore timeout #### Cache segment restore timeout
Usually, cache gets downloaded in multiple segments of fixed sizes. Sometimes, a segment download gets stuck, which causes the workflow job to be stuck. The cache segment download timeout [was introduced](https://github.com/actions/toolkit/tree/main/packages/cache#cache-segment-restore-timeout) to solve this issue as it allows the segment download to get aborted and hence allows the job to proceed with a cache miss. The default value of the cache segment download timeout is set to 10 minutes and can be customized by specifying an environment variable named `SEGMENT_DOWNLOAD_TIMEOUT_MINS` with a timeout value in minutes. Usually, cache gets downloaded in multiple segments of fixed sizes. Sometimes, a segment download gets stuck, which causes the workflow job to be stuck. The cache segment download timeout [was introduced](https://github.com/actions/toolkit/tree/main/packages/cache#cache-segment-restore-timeout) to solve this issue as it allows the segment download to get aborted and hence allows the job to proceed with a cache miss. The default value of the cache segment download timeout is set to 10 minutes and can be customized by specifying an environment variable named `SEGMENT_DOWNLOAD_TIMEOUT_MINS` with a timeout value in minutes.

View File

@ -201,6 +201,48 @@ describe('dependency cache', () => {
expect(firstCall).not.toBe(thirdCall); expect(firstCall).not.toBe(thirdCall);
}); });
}); });
describe('for mill', () => {
it('throws error if no build.sc found', async () => {
await expect(restore('mill', '')).rejects.toThrow(
`No file in ${projectRoot(
workspace
)} matched to [**/build.sc,**/*.sc,**/mill,**/.mill-version,**/.config/mill-version], make sure you have checked out the target repository`
);
});
it('downloads cache', async () => {
createFile(join(workspace, 'build.sc'));
await restore('mill', '');
expect(spyCacheRestore).toHaveBeenCalled();
expect(spyGlobHashFiles).toHaveBeenCalledWith(
'**/build.sc\n**/*.sc\n**/mill\n**/.mill-version\n**/.config/mill-version'
);
expect(spyWarning).not.toHaveBeenCalled();
expect(spyInfo).toHaveBeenCalledWith('mill cache is not found');
});
it('detects scala and mill changes under **/mill-build/ folder', async () => {
createFile(join(workspace, 'build.sc'));
createDirectory(join(workspace, 'project'));
createFile(join(workspace, '.config/mill-version'));
await restore('mill', '');
const firstCall = spySaveState.mock.calls.toString();
spySaveState.mockClear();
await restore('mill', '');
const secondCall = spySaveState.mock.calls.toString();
// Make sure multiple restores produce the same cache
expect(firstCall).toBe(secondCall);
spySaveState.mockClear();
createFile(join(workspace, '.mill-version'));
await restore('mill', '');
const thirdCall = spySaveState.mock.calls.toString();
expect(firstCall).not.toBe(thirdCall);
});
});
it('downloads cache based on versions.properties', async () => { it('downloads cache based on versions.properties', async () => {
createFile(join(workspace, 'versions.properties')); createFile(join(workspace, 'versions.properties'));

1
__tests__/cache/mill/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
out/

1
__tests__/cache/mill/.mill-version vendored Normal file
View File

@ -0,0 +1 @@
0.12.3

12
__tests__/cache/mill/build.sc vendored Normal file
View File

@ -0,0 +1,12 @@
package build
import mill._, scalalib._
object MyProject extends ScalaModule {
def scalaVersion = "2.13.11"
def ivyDeps = Agg(ivy"com.lihaoyi::mainargs:0.6.2")
object test extends ScalaTests {
def ivyDeps = Agg(ivy"com.lihaoyi::utest:0.8.5")
def testFramework = "utest.runner.Framework"
}
}

26
__tests__/cache/mill/mill vendored Executable file
View File

@ -0,0 +1,26 @@
#!/usr/bin/env sh
# This is a wrapper script that automatically downloads Mill from GitHub.
set -e
if [ -z "$MILL_VERSION" ] ; then
MILL_VERSION="$(head -n 1 .mill-version 2> /dev/null)"
fi
MILL_DOWNLOAD_PATH="$HOME/.cache/mill/download"
MILL_EXEC_PATH="${MILL_DOWNLOAD_PATH}/$MILL_VERSION"
if [ ! -x "$MILL_EXEC_PATH" ] ; then
mkdir -p "${MILL_DOWNLOAD_PATH}"
DOWNLOAD_FILE=$MILL_EXEC_PATH-tmp-download
MILL_DOWNLOAD_URL="https://github.com/lihaoyi/mill/releases/download/${MILL_VERSION%%-*}/$MILL_VERSION-assembly"
curl --fail -L -o "$DOWNLOAD_FILE" "$MILL_DOWNLOAD_URL"
chmod +x "$DOWNLOAD_FILE"
mv "$DOWNLOAD_FILE" "$MILL_EXEC_PATH"
unset DOWNLOAD_FILE
unset MILL_DOWNLOAD_URL
fi
unset MILL_DOWNLOAD_PATH
unset MILL_VERSION
exec "${MILL_EXEC_PATH}" "$@"

View File

@ -1,4 +1,47 @@
[ [
{
"version": "25.0.0",
"stable": true,
"release_url": "https://aka.ms/download-jdk",
"files": [
{
"filename": "microsoft-jdk-25.0.0-macos-x64.tar.gz",
"arch": "x64",
"platform": "darwin",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-25.0.0-macos-x64.tar.gz"
},
{
"filename": "microsoft-jdk-25.0.0-linux-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-25.0.0-linux-x64.tar.gz"
},
{
"filename": "microsoft-jdk-25.0.0-windows-x64.zip",
"arch": "x64",
"platform": "win32",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-25.0.0-windows-x64.zip"
},
{
"filename": "microsoft-jdk-25.0.0-macos-aarch64.tar.gz",
"arch": "aarch64",
"platform": "darwin",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-25.0.0-macos-aarch64.tar.gz"
},
{
"filename": "microsoft-jdk-25.0.0-linux-aarch64.tar.gz",
"arch": "aarch64",
"platform": "linux",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-25.0.0-linux-aarch64.tar.gz"
},
{
"filename": "microsoft-jdk-25.0.0-windows-aarch64.zip",
"arch": "aarch64",
"platform": "win32",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-25.0.0-windows-aarch64.zip"
}
]
},
{ {
"version": "21.0.0", "version": "21.0.0",
"stable": true, "stable": true,

View File

@ -29,6 +29,11 @@ describe('findPackageForDownload', () => {
}); });
it.each([ it.each([
[
'25.x',
'25.0.0',
'https://aka.ms/download-jdk/microsoft-jdk-25.0.0-{{OS_TYPE}}-x64.{{ARCHIVE_TYPE}}'
],
[ [
'21.x', '21.x',
'21.0.0', '21.0.0',

119
dist/setup/index.js vendored
View File

@ -129856,6 +129856,7 @@ class JavaBase {
this.checkLatest = installerOptions.checkLatest; this.checkLatest = installerOptions.checkLatest;
} }
setupJava() { setupJava() {
var _a, _b;
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
let foundJava = this.findInToolcache(); let foundJava = this.findInToolcache();
if (foundJava && !this.checkLatest) { if (foundJava && !this.checkLatest) {
@ -129863,40 +129864,106 @@ class JavaBase {
} }
else { else {
core.info('Trying to resolve the latest version from remote'); core.info('Trying to resolve the latest version from remote');
try { const MAX_RETRIES = 4;
const javaRelease = yield this.findPackageForDownload(this.version); const RETRY_DELAY_MS = 2000;
core.info(`Resolved latest version as ${javaRelease.version}`); const retryableCodes = [
if ((foundJava === null || foundJava === void 0 ? void 0 : foundJava.version) === javaRelease.version) { 'ETIMEDOUT',
core.info(`Resolved Java ${foundJava.version} from tool-cache`); 'ECONNRESET',
} 'ENOTFOUND',
else { 'ECONNREFUSED'
core.info('Trying to download...'); ];
foundJava = yield this.downloadTool(javaRelease); let retries = MAX_RETRIES;
core.info(`Java ${foundJava.version} was downloaded`); while (retries > 0) {
} try {
} // Clear console timers before each attempt to prevent conflicts
catch (error) { if (retries < MAX_RETRIES && core.isDebug()) {
if (error instanceof tc.HTTPError) { const consoleAny = console;
if (error.httpStatusCode === 403) { (_b = (_a = consoleAny._times) === null || _a === void 0 ? void 0 : _a.clear) === null || _b === void 0 ? void 0 : _b.call(_a);
core.error('HTTP 403: Permission denied or access restricted.');
} }
else if (error.httpStatusCode === 429) { const javaRelease = yield this.findPackageForDownload(this.version);
core.warning('HTTP 429: Rate limit exceeded. Please retry later.'); core.info(`Resolved latest version as ${javaRelease.version}`);
if ((foundJava === null || foundJava === void 0 ? void 0 : foundJava.version) === javaRelease.version) {
core.info(`Resolved Java ${foundJava.version} from tool-cache`);
} }
else { else {
core.error(`HTTP ${error.httpStatusCode}: ${error.message}`); core.info('Trying to download...');
foundJava = yield this.downloadTool(javaRelease);
core.info(`Java ${foundJava.version} was downloaded`);
} }
break;
} }
else { catch (error) {
const message = error instanceof Error ? error.message : JSON.stringify(error); retries--;
core.error(`Java setup failed due to network issue or timeout: ${message}`); // Check if error is retryable (including aggregate errors)
const isRetryable = (error instanceof tc.HTTPError &&
error.httpStatusCode &&
[429, 502, 503, 504].includes(error.httpStatusCode)) ||
retryableCodes.includes(error === null || error === void 0 ? void 0 : error.code) ||
((error === null || error === void 0 ? void 0 : error.errors) &&
Array.isArray(error.errors) &&
error.errors.some((err) => retryableCodes.includes(err === null || err === void 0 ? void 0 : err.code)));
if (retries > 0 && isRetryable) {
core.debug(`Attempt failed due to network or timeout issues, initiating retry... (${retries} attempts left)`);
yield new Promise(r => setTimeout(r, RETRY_DELAY_MS));
continue;
}
if (error instanceof tc.HTTPError) {
if (error.httpStatusCode === 403) {
core.error('HTTP 403: Permission denied or access restricted.');
}
else if (error.httpStatusCode === 429) {
core.warning('HTTP 429: Rate limit exceeded. Please retry later.');
}
else {
core.error(`HTTP ${error.httpStatusCode}: ${error.message}`);
}
}
else if (error && error.errors && Array.isArray(error.errors)) {
core.error(`Java setup failed due to network or configuration error(s)`);
if (error instanceof Error && error.stack) {
core.debug(error.stack);
}
for (const err of error.errors) {
const endpoint = (err === null || err === void 0 ? void 0 : err.address) || (err === null || err === void 0 ? void 0 : err.hostname) || '';
const port = (err === null || err === void 0 ? void 0 : err.port) ? `:${err.port}` : '';
const message = (err === null || err === void 0 ? void 0 : err.message) || 'Aggregate error';
const endpointInfo = !message.includes(endpoint)
? ` ${endpoint}${port}`
: '';
const localInfo = err.localAddress && err.localPort
? ` - Local (${err.localAddress}:${err.localPort})`
: '';
const logMessage = `${message}${endpointInfo}${localInfo}`;
core.error(logMessage);
core.debug(`${err.stack || err.message}`);
Object.entries(err).forEach(([key, value]) => {
core.debug(`"${key}": ${JSON.stringify(value)}`);
});
}
}
else {
const message = error instanceof Error ? error.message : JSON.stringify(error);
core.error(`Java setup process failed due to: ${message}`);
if (typeof (error === null || error === void 0 ? void 0 : error.code) === 'string') {
core.debug(error.stack);
}
const errorDetails = Object.assign({ name: error.name, message: error.message }, Object.getOwnPropertyNames(error)
.filter(prop => !['name', 'message', 'stack'].includes(prop))
.reduce((acc, prop) => {
acc[prop] = error[prop];
return acc;
}, {}));
Object.entries(errorDetails).forEach(([key, value]) => {
core.debug(`"${key}": ${JSON.stringify(value)}`);
});
}
throw error;
} }
if (error instanceof Error && error.stack) {
core.debug(error.stack);
}
throw error;
} }
} }
if (!foundJava) {
throw new Error('Failed to resolve Java version');
}
// JDK folder may contain postfix "Contents/Home" on macOS // JDK folder may contain postfix "Contents/Home" on macOS
const macOSPostfixPath = path_1.default.join(foundJava.path, constants_1.MACOS_JAVA_CONTENT_POSTFIX); const macOSPostfixPath = path_1.default.join(foundJava.path, constants_1.MACOS_JAVA_CONTENT_POSTFIX);
if (process.platform === 'darwin' && fs.existsSync(macOSPostfixPath)) { if (process.platform === 'darwin' && fs.existsSync(macOSPostfixPath)) {

1
package-lock.json generated
View File

@ -1,4 +1,3 @@
{ {
"name": "setup-java", "name": "setup-java",
"version": "5.0.0", "version": "5.0.0",

View File

@ -13,7 +13,7 @@ const CACHE_MATCHED_KEY = 'cache-matched-key';
const CACHE_KEY_PREFIX = 'setup-java'; const CACHE_KEY_PREFIX = 'setup-java';
interface PackageManager { interface PackageManager {
id: 'maven' | 'gradle' | 'sbt'; id: 'maven' | 'gradle' | 'sbt' | 'mill';
/** /**
* Paths of the file that specify the files to cache. * Paths of the file that specify the files to cache.
*/ */
@ -60,6 +60,21 @@ const supportedPackageManager: PackageManager[] = [
'**/project/**.scala', '**/project/**.scala',
'**/project/**.sbt' '**/project/**.sbt'
] ]
},
{
id: 'mill',
path: [
join(os.homedir(), '.cache', 'mill')
],
pattern: [
// https://github.com/coursier/cache-action/blob/4e2615869d13561d626ed48655e1a39e5b192b3c/README.md?plain=1#L28-L38
'**/build.sc',
'**/*.sc',
'**/mill',
'**/.mill-version',
// https://github.com/com-lihaoyi/mill/blob/5b88d1e268e6264e44589c5ac82c0fdbd680fd63/mill#L6-L11
'**/.config/mill-version'
]
} }
]; ];

View File

@ -51,39 +51,115 @@ export abstract class JavaBase {
core.info(`Resolved Java ${foundJava.version} from tool-cache`); core.info(`Resolved Java ${foundJava.version} from tool-cache`);
} else { } else {
core.info('Trying to resolve the latest version from remote'); core.info('Trying to resolve the latest version from remote');
try { const MAX_RETRIES = 4;
const javaRelease = await this.findPackageForDownload(this.version); const RETRY_DELAY_MS = 2000;
core.info(`Resolved latest version as ${javaRelease.version}`); const retryableCodes = [
if (foundJava?.version === javaRelease.version) { 'ETIMEDOUT',
core.info(`Resolved Java ${foundJava.version} from tool-cache`); 'ECONNRESET',
} else { 'ENOTFOUND',
core.info('Trying to download...'); 'ECONNREFUSED'
foundJava = await this.downloadTool(javaRelease); ];
core.info(`Java ${foundJava.version} was downloaded`); let retries = MAX_RETRIES;
} while (retries > 0) {
} catch (error: any) { try {
if (error instanceof tc.HTTPError) { // Clear console timers before each attempt to prevent conflicts
if (error.httpStatusCode === 403) { if (retries < MAX_RETRIES && core.isDebug()) {
core.error('HTTP 403: Permission denied or access restricted.'); const consoleAny = console as any;
} else if (error.httpStatusCode === 429) { consoleAny._times?.clear?.();
core.warning('HTTP 429: Rate limit exceeded. Please retry later.');
} else {
core.error(`HTTP ${error.httpStatusCode}: ${error.message}`);
} }
} else { const javaRelease = await this.findPackageForDownload(this.version);
const message = core.info(`Resolved latest version as ${javaRelease.version}`);
error instanceof Error ? error.message : JSON.stringify(error); if (foundJava?.version === javaRelease.version) {
core.error( core.info(`Resolved Java ${foundJava.version} from tool-cache`);
`Java setup failed due to network issue or timeout: ${message}` } else {
); core.info('Trying to download...');
foundJava = await this.downloadTool(javaRelease);
core.info(`Java ${foundJava.version} was downloaded`);
}
break;
} catch (error: any) {
retries--;
// Check if error is retryable (including aggregate errors)
const isRetryable =
(error instanceof tc.HTTPError &&
error.httpStatusCode &&
[429, 502, 503, 504].includes(error.httpStatusCode)) ||
retryableCodes.includes(error?.code) ||
(error?.errors &&
Array.isArray(error.errors) &&
error.errors.some((err: any) =>
retryableCodes.includes(err?.code)
));
if (retries > 0 && isRetryable) {
core.debug(
`Attempt failed due to network or timeout issues, initiating retry... (${retries} attempts left)`
);
await new Promise(r => setTimeout(r, RETRY_DELAY_MS));
continue;
}
if (error instanceof tc.HTTPError) {
if (error.httpStatusCode === 403) {
core.error('HTTP 403: Permission denied or access restricted.');
} else if (error.httpStatusCode === 429) {
core.warning(
'HTTP 429: Rate limit exceeded. Please retry later.'
);
} else {
core.error(`HTTP ${error.httpStatusCode}: ${error.message}`);
}
} else if (error && error.errors && Array.isArray(error.errors)) {
core.error(
`Java setup failed due to network or configuration error(s)`
);
if (error instanceof Error && error.stack) {
core.debug(error.stack);
}
for (const err of error.errors) {
const endpoint = err?.address || err?.hostname || '';
const port = err?.port ? `:${err.port}` : '';
const message = err?.message || 'Aggregate error';
const endpointInfo = !message.includes(endpoint)
? ` ${endpoint}${port}`
: '';
const localInfo =
err.localAddress && err.localPort
? ` - Local (${err.localAddress}:${err.localPort})`
: '';
const logMessage = `${message}${endpointInfo}${localInfo}`;
core.error(logMessage);
core.debug(`${err.stack || err.message}`);
Object.entries(err).forEach(([key, value]) => {
core.debug(`"${key}": ${JSON.stringify(value)}`);
});
}
} else {
const message =
error instanceof Error ? error.message : JSON.stringify(error);
core.error(`Java setup process failed due to: ${message}`);
if (typeof error?.code === 'string') {
core.debug(error.stack);
}
const errorDetails = {
name: error.name,
message: error.message,
...Object.getOwnPropertyNames(error)
.filter(prop => !['name', 'message', 'stack'].includes(prop))
.reduce<{[key: string]: any}>((acc, prop) => {
acc[prop] = error[prop];
return acc;
}, {})
};
Object.entries(errorDetails).forEach(([key, value]) => {
core.debug(`"${key}": ${JSON.stringify(value)}`);
});
}
throw error;
} }
if (error instanceof Error && error.stack) {
core.debug(error.stack);
}
throw error;
} }
} }
if (!foundJava) {
throw new Error('Failed to resolve Java version');
}
// JDK folder may contain postfix "Contents/Home" on macOS // JDK folder may contain postfix "Contents/Home" on macOS
const macOSPostfixPath = path.join( const macOSPostfixPath = path.join(
foundJava.path, foundJava.path,

View File

@ -1,90 +1,133 @@
[ [
{ {
"version": "21.0.2", "version": "25.0.0",
"stable": true, "stable": true,
"release_url": "https://aka.ms/download-jdk", "release_url": "https://aka.ms/download-jdk",
"files": [ "files": [
{ {
"filename": "microsoft-jdk-21.0.2-macos-x64.tar.gz", "filename": "microsoft-jdk-25.0.0-macos-x64.tar.gz",
"arch": "x64", "arch": "x64",
"platform": "darwin", "platform": "darwin",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.2-macos-x64.tar.gz" "download_url": "https://aka.ms/download-jdk/microsoft-jdk-25.0.0-macos-x64.tar.gz"
}, },
{ {
"filename": "microsoft-jdk-21.0.2-linux-x64.tar.gz", "filename": "microsoft-jdk-25.0.0-linux-x64.tar.gz",
"arch": "x64", "arch": "x64",
"platform": "linux", "platform": "linux",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.2-linux-x64.tar.gz" "download_url": "https://aka.ms/download-jdk/microsoft-jdk-25.0.0-linux-x64.tar.gz"
}, },
{ {
"filename": "microsoft-jdk-21.0.2-windows-x64.zip", "filename": "microsoft-jdk-25.0.0-windows-x64.zip",
"arch": "x64", "arch": "x64",
"platform": "win32", "platform": "win32",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.2-windows-x64.zip" "download_url": "https://aka.ms/download-jdk/microsoft-jdk-25.0.0-windows-x64.zip"
}, },
{ {
"filename": "microsoft-jdk-21.0.2-macos-aarch64.tar.gz", "filename": "microsoft-jdk-25.0.0-macos-aarch64.tar.gz",
"arch": "aarch64", "arch": "aarch64",
"platform": "darwin", "platform": "darwin",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.2-macos-aarch64.tar.gz" "download_url": "https://aka.ms/download-jdk/microsoft-jdk-25.0.0-macos-aarch64.tar.gz"
}, },
{ {
"filename": "microsoft-jdk-21.0.2-linux-aarch64.tar.gz", "filename": "microsoft-jdk-25.0.0-linux-aarch64.tar.gz",
"arch": "aarch64", "arch": "aarch64",
"platform": "linux", "platform": "linux",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.2-linux-aarch64.tar.gz" "download_url": "https://aka.ms/download-jdk/microsoft-jdk-25.0.0-linux-aarch64.tar.gz"
}, },
{ {
"filename": "microsoft-jdk-21.0.2-windows-aarch64.zip", "filename": "microsoft-jdk-25.0.0-windows-aarch64.zip",
"arch": "aarch64", "arch": "aarch64",
"platform": "win32", "platform": "win32",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.2-windows-aarch64.zip" "download_url": "https://aka.ms/download-jdk/microsoft-jdk-25.0.0-windows-aarch64.zip"
} }
] ]
}, },
{ {
"version": "21.0.1", "version": "21.0.2",
"stable": true, "stable": true,
"release_url": "https://aka.ms/download-jdk", "release_url": "https://aka.ms/download-jdk",
"files": [ "files": [
{ {
"filename": "microsoft-jdk-21.0.1-macos-x64.tar.gz", "filename": "microsoft-jdk-21.0.2-macos-x64.tar.gz",
"arch": "x64", "arch": "x64",
"platform": "darwin", "platform": "darwin",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.1-macos-x64.tar.gz" "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.2-macos-x64.tar.gz"
}, },
{ {
"filename": "microsoft-jdk-21.0.1-linux-x64.tar.gz", "filename": "microsoft-jdk-21.0.2-linux-x64.tar.gz",
"arch": "x64", "arch": "x64",
"platform": "linux", "platform": "linux",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.1-linux-x64.tar.gz" "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.2-linux-x64.tar.gz"
}, },
{ {
"filename": "microsoft-jdk-21.0.1-windows-x64.zip", "filename": "microsoft-jdk-21.0.2-windows-x64.zip",
"arch": "x64", "arch": "x64",
"platform": "win32", "platform": "win32",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.1-windows-x64.zip" "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.2-windows-x64.zip"
}, },
{ {
"filename": "microsoft-jdk-21.0.1-macos-aarch64.tar.gz", "filename": "microsoft-jdk-21.0.2-macos-aarch64.tar.gz",
"arch": "aarch64", "arch": "aarch64",
"platform": "darwin", "platform": "darwin",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.1-macos-aarch64.tar.gz" "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.2-macos-aarch64.tar.gz"
}, },
{ {
"filename": "microsoft-jdk-21.0.1-linux-aarch64.tar.gz", "filename": "microsoft-jdk-21.0.2-linux-aarch64.tar.gz",
"arch": "aarch64", "arch": "aarch64",
"platform": "linux", "platform": "linux",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.1-linux-aarch64.tar.gz" "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.2-linux-aarch64.tar.gz"
}, },
{ {
"filename": "microsoft-jdk-21.0.1-windows-aarch64.zip", "filename": "microsoft-jdk-21.0.2-windows-aarch64.zip",
"arch": "aarch64", "arch": "aarch64",
"platform": "win32", "platform": "win32",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.1-windows-aarch64.zip" "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.2-windows-aarch64.zip"
} }
] ]
}, },
{
"version": "21.0.1",
"stable": true,
"release_url": "https://aka.ms/download-jdk",
"files": [
{
"filename": "microsoft-jdk-21.0.1-macos-x64.tar.gz",
"arch": "x64",
"platform": "darwin",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.1-macos-x64.tar.gz"
},
{
"filename": "microsoft-jdk-21.0.1-linux-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.1-linux-x64.tar.gz"
},
{
"filename": "microsoft-jdk-21.0.1-windows-x64.zip",
"arch": "x64",
"platform": "win32",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.1-windows-x64.zip"
},
{
"filename": "microsoft-jdk-21.0.1-macos-aarch64.tar.gz",
"arch": "aarch64",
"platform": "darwin",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.1-macos-aarch64.tar.gz"
},
{
"filename": "microsoft-jdk-21.0.1-linux-aarch64.tar.gz",
"arch": "aarch64",
"platform": "linux",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.1-linux-aarch64.tar.gz"
},
{
"filename": "microsoft-jdk-21.0.1-windows-aarch64.zip",
"arch": "aarch64",
"platform": "win32",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.1-windows-aarch64.zip"
}
]
},
{ {
"version": "21.0.0", "version": "21.0.0",
"stable": true, "stable": true,
@ -176,42 +219,42 @@
"stable": true, "stable": true,
"release_url": "https://aka.ms/download-jdk", "release_url": "https://aka.ms/download-jdk",
"files": [ "files": [
{ {
"filename": "microsoft-jdk-17.0.9-macos-x64.tar.gz", "filename": "microsoft-jdk-17.0.9-macos-x64.tar.gz",
"arch": "x64", "arch": "x64",
"platform": "darwin", "platform": "darwin",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.9-macos-x64.tar.gz" "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.9-macos-x64.tar.gz"
}, },
{ {
"filename": "microsoft-jdk-17.0.9-linux-x64.tar.gz", "filename": "microsoft-jdk-17.0.9-linux-x64.tar.gz",
"arch": "x64", "arch": "x64",
"platform": "linux", "platform": "linux",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.9-linux-x64.tar.gz" "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.9-linux-x64.tar.gz"
}, },
{ {
"filename": "microsoft-jdk-17.0.9-windows-x64.zip", "filename": "microsoft-jdk-17.0.9-windows-x64.zip",
"arch": "x64", "arch": "x64",
"platform": "win32", "platform": "win32",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.9-windows-x64.zip" "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.9-windows-x64.zip"
}, },
{ {
"filename": "microsoft-jdk-17.0.9-macos-aarch64.tar.gz", "filename": "microsoft-jdk-17.0.9-macos-aarch64.tar.gz",
"arch": "aarch64", "arch": "aarch64",
"platform": "darwin", "platform": "darwin",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.9-macos-aarch64.tar.gz" "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.9-macos-aarch64.tar.gz"
}, },
{ {
"filename": "microsoft-jdk-17.0.9-linux-aarch64.tar.gz", "filename": "microsoft-jdk-17.0.9-linux-aarch64.tar.gz",
"arch": "aarch64", "arch": "aarch64",
"platform": "linux", "platform": "linux",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.9-linux-aarch64.tar.gz" "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.9-linux-aarch64.tar.gz"
}, },
{ {
"filename": "microsoft-jdk-17.0.9-windows-aarch64.zip", "filename": "microsoft-jdk-17.0.9-windows-aarch64.zip",
"arch": "aarch64", "arch": "aarch64",
"platform": "win32", "platform": "win32",
"download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.9-windows-aarch64.zip" "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.9-windows-aarch64.zip"
} }
] ]
}, },
{ {
@ -835,4 +878,4 @@
} }
] ]
} }
] ]