Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Update advanced-usage.md
Add example step/file for `.sdkmanrc`
  • Loading branch information
guicamest authored Nov 13, 2025
commit 54b514347030ab948b9ea9a0b7cc6a84e29bea85
32 changes: 21 additions & 11 deletions docs/advanced-usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`):
```
Expand All @@ -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).
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).
Loading