mirror of
https://github.com/actions/setup-java.git
synced 2026-07-08 14:21:50 +00:00
* Use Azul metadata API * Document arm64 -> aarch64 mapping in README.md * Paginate through all available versions * Fix typo: win_aarhc4 * Only query for linux_glibc packages * Add Zulu CRaC package support to metadata migration Fold CRaC-related work into the Zulu metadata API migration by wiring crac_supported query handling, extending Zulu package docs, and updating installer tests for jdk+crac/jre+crac behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Harden Zulu metadata pagination with safety cap - Stop paginating on a short page to avoid an extra empty request - Guard against undefined results (not just null) - Cap iterations at 100 pages and warn if the limit is hit to prevent a runaway loop if the API misbehaves Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Preserve JDK build number from Azul Metadata API The Azul Metadata API returns java_version as a 3-element array (e.g. [17,0,7]) and reports the build number separately in openjdk_build_number. The migration mapped version directly from java_version, dropping the build and breaking exact-version lookups like 17.0.7+7 (e2e failure: "No matching version found for SemVer"). Add openjdk_build_number to IZuluVersions and append it to java_version before converting to semver so resolved versions retain the build (e.g. 17.0.7+7). Update the zulu test fixtures to mirror the real API shape (3-element java_version plus openjdk_build_number) so unit tests exercise the actual response format, and rebuild dist. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Bruno Borges <brborges@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
106 lines
5.4 KiB
YAML
106 lines
5.4 KiB
YAML
name: 'Setup Java JDK'
|
|
description: 'Set up a specific version of the Java JDK and add the
|
|
command-line tools to the PATH'
|
|
author: 'GitHub'
|
|
inputs:
|
|
java-version:
|
|
description: 'The Java version to set up. Takes a whole or semver Java version. See examples of supported syntax in README file'
|
|
required: false
|
|
java-version-file:
|
|
description: 'The path to a file containing the Java version to set up (.java-version, .tool-versions, .sdkmanrc). Used when java-version is not set. See examples of supported syntax in README file'
|
|
required: false
|
|
distribution:
|
|
description: 'Java distribution. See the list of supported distributions in README file. This input is required except when java-version-file points to .sdkmanrc with a recognized distribution suffix (e.g., java=21.0.5-tem).'
|
|
required: false
|
|
java-package:
|
|
description: 'The package type (jdk, jre, jdk+fx, jre+fx, jdk+crac, jre+crac)'
|
|
required: false
|
|
default: 'jdk'
|
|
architecture:
|
|
description: "The architecture of the package (defaults to the action runner's architecture)"
|
|
required: false
|
|
jdkFile:
|
|
description: 'Path to where the compressed JDK is located'
|
|
required: false
|
|
check-latest:
|
|
description: 'Set this option if you want the action to check for the latest available version that satisfies the version spec'
|
|
required: false
|
|
default: false
|
|
set-default:
|
|
description: 'Set this option to false if you want to install a JDK but not make it the default. When false, JAVA_HOME and PATH are not updated, but JAVA_HOME_<major>_<arch> is still set.'
|
|
required: false
|
|
default: true
|
|
verify-signature:
|
|
description: 'Verify downloaded Java package signatures when supported by the selected distribution'
|
|
required: false
|
|
default: false
|
|
verify-signature-public-key:
|
|
description: 'ASCII-armored GPG public key used to verify the downloaded package signature. Overrides the default bundled key for the selected distribution.'
|
|
required: false
|
|
server-id:
|
|
description: 'ID of the distributionManagement repository in the pom.xml
|
|
file. Default is `github`'
|
|
required: false
|
|
default: 'github'
|
|
server-username:
|
|
description: 'Environment variable name for the username for authentication
|
|
to the Apache Maven repository. Default is $GITHUB_ACTOR'
|
|
required: false
|
|
default: 'GITHUB_ACTOR'
|
|
server-password:
|
|
description: 'Environment variable name for password or token for
|
|
authentication to the Apache Maven repository. Default is $GITHUB_TOKEN'
|
|
required: false
|
|
default: 'GITHUB_TOKEN'
|
|
settings-path:
|
|
description: 'Path to where the settings.xml file will be written. Default is ~/.m2.'
|
|
required: false
|
|
overwrite-settings:
|
|
description: 'Overwrite the settings.xml file if it exists. Default is "true".'
|
|
required: false
|
|
default: true
|
|
gpg-private-key:
|
|
description: 'GPG private key to import. Default is empty string.'
|
|
required: false
|
|
default: ''
|
|
gpg-passphrase:
|
|
description: 'Environment variable name for the GPG private key passphrase. Defaults to GPG_PASSPHRASE when gpg-private-key is set; ignored otherwise.'
|
|
required: false
|
|
cache:
|
|
description: 'Name of the build platform to cache dependencies. It can be "maven", "gradle" or "sbt".'
|
|
required: false
|
|
cache-dependency-path:
|
|
description: '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.'
|
|
required: false
|
|
job-status:
|
|
description: 'Workaround to pass job status to post job step. This variable is not intended for manual setting'
|
|
required: false
|
|
default: ${{ job.status }}
|
|
token:
|
|
description: The token used to authenticate when fetching version manifests hosted on github.com, such as for the Microsoft Build of OpenJDK. When running this action on github.com, the default value is sufficient. When running on GHES, you can pass a personal access token for github.com if you are experiencing rate limiting.
|
|
required: false
|
|
default: ${{ github.server_url == 'https://github.com' && github.token || '' }}
|
|
mvn-toolchain-id:
|
|
description: 'Name of Maven Toolchain ID if the default name of "${distribution}_${java-version}" is not wanted. See examples of supported syntax in Advanced Usage file'
|
|
required: false
|
|
mvn-toolchain-vendor:
|
|
description: 'Name of Maven Toolchain Vendor if the default name of "${distribution}" is not wanted. See examples of supported syntax in Advanced Usage file'
|
|
required: false
|
|
show-download-progress:
|
|
description: 'Whether Maven should print artifact download/transfer progress to the build log. When "false" (default) the action sets "-ntp" (--no-transfer-progress) in MAVEN_ARGS to produce cleaner logs. Set to "true" to keep the progress output. Has no effect on non-Maven builds.'
|
|
required: false
|
|
default: false
|
|
outputs:
|
|
distribution:
|
|
description: 'Distribution of Java that has been installed'
|
|
version:
|
|
description: 'Actual version of the java environment that has been installed'
|
|
path:
|
|
description: 'Path to where the java environment has been installed (same as $JAVA_HOME)'
|
|
cache-hit:
|
|
description: 'A boolean value to indicate an exact match was found for the primary key'
|
|
runs:
|
|
using: 'node24'
|
|
main: 'dist/setup/index.js'
|
|
post: 'dist/cleanup/index.js'
|