mirror of
https://github.com/actions/setup-java
synced 2024-12-22 21:22:41 +00:00
45f1a8d74b
Changes in detail: ------------------ - action.yml: - add inputs: - update-toolchains-only - update-env-javahome - add-to-env-path - update description for input "overwrite-settings" - remove default value of input "overwrite-settings", since the default is now propagated from input 'update-toolchains-only' - base-models.ts: - extend interface JavaInstallerOptions: - add fields: - updateEnvJavaHome: boolean; - addToEnvPath: boolean; - constants.ts: - add constant INPUT_UPDATE_TOOLCHAINS_ONLY = 'update-toolchains-only' - auth.ts: - function configureAuthentication(): - add parameter: - overwriteSettings: boolean - remove the now obsolete const overwriteSettings - toolchains.ts: - function configureToolchains(...): - add parameter updateToolchains: boolean - remove the now obsolete const overwriteSettings - improve variable naming: - rename any occurrence of 'overwriteSettings' by 'updateToolchains' - add field updateToolchains: boolean to the parameter object - function writeToolchainsFileToDisk(...): - improve variable naming: - rename variable 'settingsExists' by 'toolchainsExists' - update wording of info logs to be more applicable - setup-java.ts: - interface installerInputsOptions: - rename to IInstallerInputsOption to meet common coding convention - add fields: - updateToolchainsOnly: boolean; - overwriteSettings: boolean; - updateEnvJavaHome: boolean; - addToEnvPath: boolean; - function run(): - add const: - const updateToolchainsOnly: - get as boolean from input 'update-toolchains-only', default: false - const overwriteSettings: - get as boolean from input 'overwrite-settings', default: !updateToolchainsOnly - const updateEnvJavaHome: - get as boolean input 'update-env-javahome', default: !updateToolchainsOnly - const addToEnvPath: - get as boolean input 'add-to-env-path', default: !updateToolchainsOnly - extend const installerInputsOptions to match with IInstallerInputsOption: - add field updateToolchainsOnly - add field overwriteSettings - add field updateEnvJavaHome - add field addToEnvPath - update call of auth.configureAuthentication() to auth.configureAuthentication(overwriteSettings) - function installVersion(...): - add const and init from parameter options: - updateToolchainsOnly, overwriteSettings, updateEnvJavaHome, addToEnvPath - init the additional fields of installerInputsOptions accordingly - call toolchains.configureToolchains(...): - with parameter updateToolchains= overwriteSettings || updateToolchainsOnly - base-installer.ts: - add constants to import from constants: - INPUT_UPDATE_JAVA_HOME - INPUT_ADD_TO_PATH - add fields: - protected updateEnvJavaHome: boolean; - protected addToEnvPath: boolean; - ctor: - init these fields from JavaInstallerOptions accoprdingly - function setJavaDefault(...): - if updateEnvJavaHome is false: - SKIP updating env.JAVA_HOME - log info: `Skip updating env.JAVA_HOME according to ${INPUT_UPDATE_JAVA_HOME}` - if addToEnvPath is false: - SKIP adding toolchain path to env.PATH - log info: `Skip adding to env.PATH according to ${INPUT_ADD_TO_PATH}`
98 lines
5.1 KiB
YAML
98 lines
5.1 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'
|
|
java-version-file:
|
|
description: 'The path to the `.java-version` file. See examples of supported syntax in README file'
|
|
distribution:
|
|
description: 'Java distribution. See the list of supported distributions in README file'
|
|
required: true
|
|
java-package:
|
|
description: 'The package type (jdk, jre, jdk+fx, jre+fx)'
|
|
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
|
|
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 "!update-toolchains-only". If explcitly set "true", it will update settings.xml regardless of "update-toolchains-only"'
|
|
required: false
|
|
# DO NOT set a default here! The default will be propagated from input 'update-toolchains-only'!
|
|
update-toolchains-only:
|
|
description: 'Update toolchains.xml only. Default is "false". No update of settings.xml, no update of JAVA_HOME, no adding to PATH by default - unless "overwrite-settings", "update-env-javahome" or "add-to-env-path" are not explicitly set "true"'
|
|
required: false
|
|
default: false
|
|
update-env-javahome:
|
|
description: 'Update the JAVA_HOME environment variable. Default is "!update-toolchains-only"'
|
|
required: false
|
|
# DO NOT set a default here! The default will be propagated from input 'update-toolchains-only'!
|
|
add-to-env-path:
|
|
description: 'Add "<JDK home>/bin" to the PATH environment variable. Default is "!update-toolchains-only"'
|
|
required: false
|
|
# DO NOT set a default here! The default will be propagated from input 'update-toolchains-only'!
|
|
gpg-private-key:
|
|
description: 'GPG private key to import. Default is empty string.'
|
|
required: false
|
|
gpg-passphrase:
|
|
description: 'Environment variable name for the GPG private key passphrase. Default is
|
|
$GPG_PASSPHRASE.'
|
|
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'
|
|
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.
|
|
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
|
|
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: 'node20'
|
|
main: 'dist/setup/index.js'
|
|
post: 'dist/cleanup/index.js'
|