Compare commits

...

3 Commits

Author SHA1 Message Date
Scyjin 85d81d25b0
Merge c56ba51237 into 6ba5449b7d 2025-11-14 08:58:43 +01: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
Scyjin c56ba51237 Extended settings.xml - Profiles with Repo 2025-04-29 20:17:06 +02:00
9 changed files with 362 additions and 74 deletions

View File

@ -21,7 +21,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [macos-13, windows-latest, ubuntu-latest]
os: [macos-15-intel, windows-latest, ubuntu-latest]
steps:
- name: Checkout
uses: actions/checkout@v5
@ -46,7 +46,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [macos-13, windows-latest, ubuntu-latest]
os: [macos-15-intel, windows-latest, ubuntu-latest]
needs: gradle-save
steps:
- name: Checkout
@ -70,7 +70,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [macos-13, windows-latest, ubuntu-latest]
os: [macos-15-intel, windows-latest, ubuntu-latest]
steps:
- name: Checkout
uses: actions/checkout@v5
@ -93,7 +93,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [macos-13, windows-latest, ubuntu-latest]
os: [macos-15-intel, windows-latest, ubuntu-latest]
needs: maven-save
steps:
- name: Checkout
@ -121,7 +121,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [macos-13, windows-latest, ubuntu-22.04]
os: [macos-15-intel, windows-latest, ubuntu-22.04]
steps:
- name: Checkout
uses: actions/checkout@v5
@ -133,7 +133,7 @@ jobs:
java-version: '11'
cache: sbt
- name: Setup SBT
if: matrix.os == 'macos-13'
if: matrix.os == 'macos-15-intel'
run: |
echo ""Installing SBT...""
brew install sbt
@ -141,7 +141,7 @@ jobs:
run: sbt update
- name: Check files to cache on macos-latest
if: matrix.os == 'macos-13'
if: matrix.os == 'macos-15-intel'
run: |
if [ ! -d ~/Library/Caches/Coursier ]; then
echo "::error::The ~/Library/Caches/Coursier directory does not exist unexpectedly"
@ -170,7 +170,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [macos-13, windows-latest, ubuntu-22.04]
os: [macos-15-intel, windows-latest, ubuntu-22.04]
needs: sbt-save
steps:
- name: Checkout
@ -184,7 +184,7 @@ jobs:
cache: sbt
- name: Confirm that ~/Library/Caches/Coursier directory has been made
if: matrix.os == 'macos-13'
if: matrix.os == 'macos-15-intel'
run: |
if [ ! -d ~/Library/Caches/Coursier ]; then
echo "::error::The ~/Library/Caches/Coursier directory does not exist unexpectedly"

View File

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

View File

@ -53,6 +53,24 @@ inputs:
description: 'Environment variable name for the GPG private key passphrase. Default is
$GPG_PASSPHRASE.'
required: false
repo-id:
description: 'Identifier of a Named Repo - e.g. "github"'
required: false
repo-url:
description: 'URL of a repository where maven will look for Dependencies - e.g. "https://maven.pkg.github.com/<USERNAME_or_ORGANIZATION>/*"'
required: false
no-snapshots:
description: 'Determines whether snapshots for custom repositories are allowed; defaults to allowing snapshots.'
required: false
default: false
use-central:
description: 'Sets the Flag, whether to use Maven-Central or not. (default allows Central repo)'
required: false
default: true
prioritize-central:
description: 'Allows it to define, which Repo will be chosen first to download Dependencies. (default Central prior Custom)'
required: false
default: true
cache:
description: 'Name of the build platform to cache dependencies. It can be "maven", "gradle" or "sbt".'
required: false

119
dist/setup/index.js vendored
View File

@ -129856,6 +129856,7 @@ class JavaBase {
this.checkLatest = installerOptions.checkLatest;
}
setupJava() {
var _a, _b;
return __awaiter(this, void 0, void 0, function* () {
let foundJava = this.findInToolcache();
if (foundJava && !this.checkLatest) {
@ -129863,40 +129864,106 @@ class JavaBase {
}
else {
core.info('Trying to resolve the latest version from remote');
try {
const javaRelease = yield this.findPackageForDownload(this.version);
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 {
core.info('Trying to download...');
foundJava = yield this.downloadTool(javaRelease);
core.info(`Java ${foundJava.version} was downloaded`);
}
}
catch (error) {
if (error instanceof tc.HTTPError) {
if (error.httpStatusCode === 403) {
core.error('HTTP 403: Permission denied or access restricted.');
const MAX_RETRIES = 4;
const RETRY_DELAY_MS = 2000;
const retryableCodes = [
'ETIMEDOUT',
'ECONNRESET',
'ENOTFOUND',
'ECONNREFUSED'
];
let retries = MAX_RETRIES;
while (retries > 0) {
try {
// Clear console timers before each attempt to prevent conflicts
if (retries < MAX_RETRIES && core.isDebug()) {
const consoleAny = console;
(_b = (_a = consoleAny._times) === null || _a === void 0 ? void 0 : _a.clear) === null || _b === void 0 ? void 0 : _b.call(_a);
}
else if (error.httpStatusCode === 429) {
core.warning('HTTP 429: Rate limit exceeded. Please retry later.');
const javaRelease = yield this.findPackageForDownload(this.version);
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 {
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 {
const message = error instanceof Error ? error.message : JSON.stringify(error);
core.error(`Java setup failed due to network issue or timeout: ${message}`);
catch (error) {
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 === 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
const macOSPostfixPath = path_1.default.join(foundJava.path, constants_1.MACOS_JAVA_CONTENT_POSTFIX);
if (process.platform === 'darwin' && fs.existsSync(macOSPostfixPath)) {

View File

@ -436,6 +436,65 @@ See the help docs on [Publishing a Package](https://help.github.com/en/github/ma
***NOTE***: If the error that states, `gpg: Sorry, no terminal at all requested - can't get input` [is encountered](https://github.com/actions/setup-java/issues/554), please update the version of `maven-gpg-plugin` to 1.6 or higher.
## Resolving Dependencies
If you use setup-java action to build your project with dependencies of another repository then Maven Central, you need to tell maven where to find your Dependencies.
```yaml
- name: Set up Apache Maven Central
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
server-username: ${{ secrets.USERNAME }}
server-password: ${{ secrets.PASS_WORD }}
repo-id: github
repo-url: 'https://maven.pkg.github.com/<USERNAME_or_ORGANIZATION>/*'
no-snapshots: false # (optional) default Snapshots enabled true
use-central: true # (optional) default uses Central
prioritize-central: true # (optional) default first lookup Maven Central
```
The generated `settings.xml` will look like:
```xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
<activeProfiles>
<activeProfile>github</activeProfile>
</activeProfiles>
<profiles>
<profile>
<id>github</id>
<repositories>
<repository>
<id>central</id>
<url>https://repo1.maven.org/maven2</url>
</repository>
<repository>
<id>github</id>
<url>https://maven.pkg.github.com/<USERNAME_or_ORGANIZATION>/*</url>
<snapshots>
<!--
<enabled>true</enabled>
-->
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<servers>
<server>
<id>github</id>
<username>${secrets.USERNAME}</username>
<password>${secrets.PASS_WORD}</password>
</server>
</servers>
</settings>
```
## Apache Maven with a settings path
When using an Actions self-hosted runner with multiple shared runners the default `$HOME` directory can be shared by a number runners at the same time which could overwrite existing settings file. Setting the `settings-path` variable allows you to choose a unique location for your settings file.

1
package-lock.json generated
View File

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

View File

@ -31,6 +31,13 @@ export async function configureAuthentication() {
if (gpgPrivateKey) {
core.setSecret(gpgPrivateKey);
}
const repoId = core.getInput(constants.INPUT_REPO_ID);
const repoUrl = core.getInput(constants.INPUT_REPO_URL);
const useCentral = core.getBooleanInput(constants.INPUT_USE_CENTRAL);
const prioritizeCentral = core.getBooleanInput(
constants.INPUT_PRIORITIZE_CENTRAL
);
const noSnapshots = core.getBooleanInput(constants.INPUT_REPO_NO_SNAPSHOTS);
await createAuthenticationSettings(
id,
@ -38,7 +45,13 @@ export async function configureAuthentication() {
password,
settingsDirectory,
overwriteSettings,
gpgPassphrase
gpgPassphrase,
repoId,
undefined, // profileId
repoUrl,
useCentral,
prioritizeCentral,
noSnapshots
);
if (gpgPrivateKey) {
@ -54,15 +67,35 @@ export async function createAuthenticationSettings(
password: string,
settingsDirectory: string,
overwriteSettings: boolean,
gpgPassphrase: string | undefined = undefined
gpgPassphrase: string | undefined = undefined,
repoId?: string,
profileId: string | undefined = repoId, // simplifying fallback (entrypoint for multi-profile)
repoUrl?: string,
useCentral?: boolean,
prioritizeCentral?: boolean,
noSnapshots?: boolean
) {
core.info(`Creating ${constants.MVN_SETTINGS_FILE} with server-id: ${id}`);
if (profileId) {
core.info(`Using [${profileId}] to add Dependencies from [${repoUrl}]`);
}
// when an alternate m2 location is specified use only that location (no .m2 directory)
// otherwise use the home/.m2/ path
await io.mkdirP(settingsDirectory);
await write(
settingsDirectory,
generate(id, username, password, gpgPassphrase),
generate(
id,
username,
password,
gpgPassphrase,
repoId,
profileId,
repoUrl,
useCentral,
prioritizeCentral,
noSnapshots
),
overwriteSettings
);
}
@ -72,14 +105,45 @@ export function generate(
id: string,
username: string,
password: string,
gpgPassphrase?: string | undefined
gpgPassphrase?: string | undefined,
repoId?: string,
profileId?: string,
repoUrl?: string,
useCentral: boolean = true,
prioritizeCentral: boolean = true,
noSnapshots: boolean = false
) {
const centralRepo = {
repository: {
id: 'central',
url: 'https://repo1.maven.org/maven2'
}
};
const customRepo = {
repository: {
id: repoId,
url: repoUrl,
...(noSnapshots ? {snapshots: {enabled: false}} : {})
}
};
const profiles = {
profile: {
id: profileId,
repositories: useCentral
? prioritizeCentral
? [centralRepo, customRepo] // faster if more deps from central
: [customRepo, centralRepo]
: [customRepo] // to exclude central
}
};
const xmlObj: {[key: string]: any} = {
settings: {
'@xmlns': 'http://maven.apache.org/SETTINGS/1.0.0',
'@xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',
'@xsi:schemaLocation':
'http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd',
activeProfiles: profileId ? [{activeProfile: profileId}] : [],
profiles: repoId && profileId && repoUrl ? [profiles] : [],
servers: {
server: [
{

View File

@ -13,6 +13,11 @@ export const INPUT_SETTINGS_PATH = 'settings-path';
export const INPUT_OVERWRITE_SETTINGS = 'overwrite-settings';
export const INPUT_GPG_PRIVATE_KEY = 'gpg-private-key';
export const INPUT_GPG_PASSPHRASE = 'gpg-passphrase';
export const INPUT_REPO_ID = 'repo-id';
export const INPUT_REPO_URL = 'repo-url';
export const INPUT_REPO_NO_SNAPSHOTS = 'no-snapshots';
export const INPUT_USE_CENTRAL = 'use-central';
export const INPUT_PRIORITIZE_CENTRAL = 'prioritize-central';
export const INPUT_DEFAULT_GPG_PRIVATE_KEY = undefined;
export const INPUT_DEFAULT_GPG_PASSPHRASE = 'GPG_PASSPHRASE';

View File

@ -51,39 +51,115 @@ export abstract class JavaBase {
core.info(`Resolved Java ${foundJava.version} from tool-cache`);
} else {
core.info('Trying to resolve the latest version from remote');
try {
const javaRelease = await this.findPackageForDownload(this.version);
core.info(`Resolved latest version as ${javaRelease.version}`);
if (foundJava?.version === javaRelease.version) {
core.info(`Resolved Java ${foundJava.version} from tool-cache`);
} else {
core.info('Trying to download...');
foundJava = await this.downloadTool(javaRelease);
core.info(`Java ${foundJava.version} was downloaded`);
}
} catch (error: any) {
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}`);
const MAX_RETRIES = 4;
const RETRY_DELAY_MS = 2000;
const retryableCodes = [
'ETIMEDOUT',
'ECONNRESET',
'ENOTFOUND',
'ECONNREFUSED'
];
let retries = MAX_RETRIES;
while (retries > 0) {
try {
// Clear console timers before each attempt to prevent conflicts
if (retries < MAX_RETRIES && core.isDebug()) {
const consoleAny = console as any;
consoleAny._times?.clear?.();
}
} else {
const message =
error instanceof Error ? error.message : JSON.stringify(error);
core.error(
`Java setup failed due to network issue or timeout: ${message}`
);
const javaRelease = await this.findPackageForDownload(this.version);
core.info(`Resolved latest version as ${javaRelease.version}`);
if (foundJava?.version === javaRelease.version) {
core.info(`Resolved Java ${foundJava.version} from tool-cache`);
} 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
const macOSPostfixPath = path.join(
foundJava.path,