diff --git a/docs/advanced-usage.md b/docs/advanced-usage.md index e231513d..88d3508b 100644 --- a/docs/advanced-usage.md +++ b/docs/advanced-usage.md @@ -602,16 +602,26 @@ steps: If the `java-version-file` input is specified, the action will extract the version from the file and install it. Supported files are `.java-version`, `.tool-versions` and `.sdkmanrc`. - In `.java-version` file, only the version should be specified (e.g., 17.0.7). - In `.tool-versions` file, java version should be preceded by the java keyword (e.g., java 17.0.7). - In `.sdkmanrc` file, java version should be preceded by the `java=` prefix (e.g., java=17.0.7-tem) and include the distribution. - The `.java-version` file recognizes all variants of the version description according to [jenv](https://github.com/jenv/jenv). - Similarly, the `.tool-versions` file supports version specifications in accordance with [asdf](https://github.com/asdf-vm/asdf) - standards, adhering to Semantic Versioning ([semver](https://semver.org/)). - The `.sdkmanrc` file supports version specifications in accordance with [file format](https://sdkman.io/usage#env-command), - see [Sdkman! documentation](https://sdkman.io/jdks) for more information. - - If both java-version and java-version-file inputs are provided, the java-version input will be used. + * In `.java-version` file, only the version should be specified (e.g., 17.0.7). The `.java-version` file recognizes all variants of the version description according to [jenv](https://github.com/jenv/jenv). + * In `.tool-versions` file, java version should be preceded by the java keyword (e.g., java 17.0.7). The `.tool-versions` file supports version specifications in accordance with [asdf](https://github.com/asdf-vm/asdf) standards, adhering to Semantic Versioning ([semver](https://semver.org/)). + * (NEW) In `.sdkmanrc` file, java version should be preceded by the `java=` prefix (e.g., java=17.0.7-tem) and include the distribution. The `.sdkmanrc` file supports version specifications in accordance with [file format](https://sdkman.io/usage#env-command), see [Sdkman! documentation](https://sdkman.io/jdks) for more information. + + + If both `java-version` and `java-version-file` **inputs** are provided, the `java-version` input will be used. + +**Example step using `Sdkman!`**: +```yml + - name: Setup java + uses: actions/setup-java@v5 + with: + java-version-file: '.sdkmanrc' + distribution: 'temurin' +``` + +**Example `.sdkmanrc`**: +``` +java=17.0.7-tem +``` Valid entry options (does not apply to `.sdkmanrc`): ``` @@ -624,4 +634,4 @@ LTS versions : temurin-21.0.5+11.0.LTS If the file contains multiple versions, only the first one will be recognized. ***NOTE***: -For the tool-version file, ensure that you use standard semantic versioning (semver) formats, as non-standard formats (such as jetbrains-21b212.1) may not be parsed correctly. Additionally, for complex version strings containing multiple version-like segments (for example, java semeru-openj9-11.0.15+10_openj9-0.32.0), the extraction logic may incorrectly capture the last segment (0.32.0) instead of the main version (11.0.15+10). \ No newline at end of file +For the tool-version file, ensure that you use standard semantic versioning (semver) formats, as non-standard formats (such as jetbrains-21b212.1) may not be parsed correctly. Additionally, for complex version strings containing multiple version-like segments (for example, java semeru-openj9-11.0.15+10_openj9-0.32.0), the extraction logic may incorrectly capture the last segment (0.32.0) instead of the main version (11.0.15+10).