From ab1f15d500909a6072a763db16a59337b11b94db Mon Sep 17 00:00:00 2001
From: Maxim Lobanov
Date: Mon, 8 Mar 2021 18:38:11 +0300
Subject: [PATCH 1/8] Update documentation for setup-java@v2 release
---
README.md | 269 +++++++------------------------------
docs/advanced-usage.md | 290 ++++++++++++++++++++++++++++++++++++++++
docs/switching-to-v2.md | 35 +++++
3 files changed, 375 insertions(+), 219 deletions(-)
create mode 100644 docs/advanced-usage.md
create mode 100644 docs/switching-to-v2.md
diff --git a/README.md b/README.md
index 14e6d77e..43ac25a7 100644
--- a/README.md
+++ b/README.md
@@ -4,252 +4,83 @@
-This action sets up a java environment for use in actions by:
+This action provides the following functionality for GitHub Actions runners:
+- Downloading and setting up a requested version of Java. See [Usage](#Usage) section for the list of supported distributions
+- Extracting and caching custom version of Java from local file
+- Configuring runner for publishing using Apache Maven
+- Configuring runner for publishing using Gradle
+- Configuring runner for using GPG private key
+- Registering problem matchers for error output
-- optionally downloading and caching a requested version of java by version and adding to PATH. Default downloads are populated from the [Zulu Community distribution of OpenJDK](http://static.azul.com/zulu/bin/)
-- registering problem matchers for error output
+## V2 vs V1
+- V2 has support of custom distributions and provides support of Zulu OpenJDK and Adoptium (former AdoptOpenJDK) out of the box. V1 supports only Zulu OpenJDK
+- V2 requires you to specify distribution along with the version. V1 defaults to Zulu OpenJDK, only version input is required. Follow [the migration guide](docs/switching-to-v2.md) to switch from V1 to V2
-# Usage
+## Usage
+Input `distribution` is mandatory. See [Supported distributions](../README.md#Supported-distributions) section for the list of available options.
-See [action.yml](action.yml)
-
-## Basic
+### Basic
```yaml
steps:
- uses: actions/checkout@v2
-- uses: actions/setup-java@v1
+- uses: actions/setup-java@v2-preview
with:
- java-version: '9.0.4' # The JDK version to make available on the path.
- java-package: jdk # (jre, jdk, or jdk+fx) - defaults to jdk
- architecture: x64 # (x64 or x86) - defaults to x64
-- run: java -cp java HelloWorldApp
-```
-Examples of version specifications that the java-version parameter will accept:
-
-- A major Java version
-
- e.g. ```6, 7, 8, 9, 10, 11, 12, 13, ...```
-
-- A semver Java version specification
-
- e.g. ```8.0.232, 7.0.181, 11.0.4```
-
- e.g. ```8.0.x, >11.0.3, >=13.0.1, <8.0.212```
-
-- An early access (EA) Java version
-
- e.g. ```14-ea, 15-ea```
-
- e.g. ```14.0.0-ea, 15.0.0-ea```
-
- e.g. ```14.0.0-ea.28, 15.0.0-ea.2``` (syntax for specifying an EA build number)
-
- Note that, per semver rules, EA builds will be matched by explicit EA version specifications.
-
-- 1.x syntax
-
- e.g. ```1.8``` (same as ```8```)
-
- e.g. ```1.8.0.212``` (same as ```8.0.212```)
-
-
-## Local file
-```yaml
-steps:
-- uses: actions/checkout@v2
-- uses: actions/setup-java@v1
- with:
- java-version: '4.0.0'
- architecture: x64
- jdkFile: # Optional - jdkFile to install java from. Useful for versions not found on Zulu Community CDN
+ distribution: 'adoptium' # See 'Supported distributions' for available options
+ java-version: '11.x'
- run: java -cp java HelloWorldApp
```
-## Matrix Testing
+#### Supported version syntax
+Input `java-version` supports version range or exact version in [SemVer](https://semver.org/) format:
+- major versions: `8`, `11`, `15`, `11.x`
+- more specific versions: `8.0.232`, `11.0.4`, `11.0`, `11.0.x`
+- an early access (EA) versions: `15-ea`, `15.0.0-ea`, `15.0.0-ea.2`
+
+#### Supported distributions
+Currently, the following distributions are supported:
+| Keyword | Distribution | Official site | License |
+|-|-|-|-|
+| `zulu` | Zulu (Zulu OpenJDK) | [Link](https://www.azul.com/downloads/zulu-community/?package=jdk) | [Link](https://www.azul.com/products/zulu-and-zulu-enterprise/zulu-terms-of-use/) |
+| `adoptium` | Adoptium (former Adopt OpenJDK) | [Link](https://adoptopenjdk.net/) | [Link](https://adoptopenjdk.net/about.html)
+
+**NOTE:** The different distributors can provide discrepant list of available versions / supported configurations. Please refer to the official documentation to see the list of supported versions.
+
+#### Testing against different Java versions
```yaml
jobs:
build:
- runs-on: ubuntu-16.04
+ runs-on: ubuntu-20.04
strategy:
matrix:
- # test against latest update of each major Java version, as well as specific updates of LTS versions:
- java: [ 1.6, 6.0.83, 7, 7.0.181, 8, 8.0.192, 9.0.x, 10, 11.0.x, 11.0.3, 12, 13 ]
- name: Java ${{ matrix.java }} sample
+ java: [ '8', '11', '13', '15' ]
+ name: Java ${{ matrix.Java }} sample
steps:
- uses: actions/checkout@v2
- name: Setup java
- uses: actions/setup-java@v1
+ uses: actions/setup-java@v2-preview
with:
+ distribution: ''
java-version: ${{ matrix.java }}
- run: java -cp java HelloWorldApp
```
-## Publishing using Apache Maven
+### Advanced
+- [Selecting Java distribution](docs/advanced-usage.md#Selecting-Java-distribution)
+ - [Adoptium](docs/advanced-usage.md#Adoptium)
+ - [Zulu](docs/advanced-usage.md#Zulu)
+- [Installing custom Java package type](docs/advanced-usage.md#Installing-custom-Java-package-type)
+- [Installing custom Java architecture](docs/advanced-usage.md#Installing-custom-Java-architecture)
+- [Installing custom Java distribution from local file](docs/advanced-usage.md#Installing-Java-from-local-file)
+- [Testing against different Java distributions](docs/advanced-usage.md#Testing-against-different-Java-distributions)
+- [Testing against different platforms](docs/advanced-usage.md#Testing-against-different-platforms)
+- [Publishing using Apache Maven](docs/advanced-usage.md#Publishing-using-Apache-Maven)
+- [Publishing using Gradle](docs/advanced-usage.md#Publishing-using-Gradle)
-### Extra setup for pom.xml:
-The Maven GPG Plugin configuration in the pom.xml file should contain the following structure to avoid possible issues like `Inappropriate ioctl for device` or `gpg: signing failed: No such file or directory`:
-
-```xml
-
-
-
- --pinentry-mode
- loopback
-
-
-```
-GPG 2.1 requires `--pinentry-mode` to be set to `loopback` in order to pick up the `gpg.passphrase` value defined in Maven `settings.xml`.
-
-### Yaml example:
-```yaml
-jobs:
- build:
-
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v2
- - name: Set up JDK 1.8
- uses: actions/setup-java@v1
- with:
- java-version: 1.8
-
- - name: Build with Maven
- run: mvn -B package --file pom.xml
-
- - name: Publish to GitHub Packages Apache Maven
- run: mvn deploy
- env:
- GITHUB_TOKEN: ${{ github.token }} # GITHUB_TOKEN is the default env for the password
-
- - name: Set up Apache Maven Central
- uses: actions/setup-java@v1
- with: # running setup-java again overwrites the settings.xml
- java-version: 1.8
- server-id: maven # Value of the distributionManagement/repository/id field of the pom.xml
- server-username: MAVEN_USERNAME # env variable for username in deploy
- server-password: MAVEN_CENTRAL_TOKEN # env variable for token in deploy
- gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
- gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase
-
- - name: Publish to Apache Maven Central
- run: mvn deploy
- env:
- MAVEN_USERNAME: maven_username123
- MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }}
- MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
-```
-
-The two `settings.xml` files created from the above example look like the following.
-
-`settings.xml` file created for the first deploy to GitHub Packages
-```xml
-
-
-
- github
- ${env.GITHUB_ACTOR}
- ${env.GITHUB_TOKEN}
-
-
- gpg.passphrase
- ${env.GPG_PASSPHRASE}
-
-
-
-```
-
-`settings.xml` file created for the second deploy to Apache Maven Central
-```xml
-
-
-
- maven
- ${env.MAVEN_USERNAME}
- ${env.MAVEN_CENTRAL_TOKEN}
-
-
- gpg.passphrase
- ${env.MAVEN_GPG_PASSPHRASE}
-
-
-
-```
-
-***NOTE: The `settings.xml` file is created in the Actions $HOME/.m2 directory. If you have an existing `settings.xml` file at that location, it will be overwritten. See below for using the `settings-path` to change your `settings.xml` file location.***
-
-### GPG
-
-If `gpg-private-key` input is provided, the private key will be written to a file in the runner's temp directory, the private key file will be imported into the GPG keychain, and then the file will be promptly removed before proceeding with the rest of the setup process. A cleanup step will remove the imported private key from the GPG keychain after the job completes regardless of the job status. This ensures that the private key is no longer accessible on self-hosted runners and cannot "leak" between jobs (hosted runners are always clean instances).
-
-**GPG key should be exported by: `gpg --armor --export-secret-keys YOUR_ID`**
-
-See the help docs on [Publishing a Package](https://help.github.com/en/github/managing-packages-with-github-packages/configuring-apache-maven-for-use-with-github-packages#publishing-a-package) for more information on the `pom.xml` file.
-
-## Publishing using Gradle
-```yaml
-jobs:
-
- build:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v2
-
- - name: Set up JDK 1.8
- uses: actions/setup-java@v1
-
- - name: Build with Gradle
- run: gradle build
-
- - name: Publish to GitHub Packages
- run: gradle publish
- env:
- USERNAME: ${{ github.actor }}
- PASSWORD: ${{ secrets.GITHUB_TOKEN }}
-```
-
-***NOTE: The `USERNAME` and `PASSWORD` need to correspond to the credentials environment variables used in the publishing section of your `build.gradle`.***
-
-See the help docs on [Publishing a Package with Gradle](https://help.github.com/en/github/managing-packages-with-github-packages/configuring-gradle-for-use-with-github-packages#example-using-gradle-groovy-for-a-single-package-in-a-repository) for more information on the `build.gradle` configuration file.
-
-## 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.
-
-```yaml
-jobs:
- build:
-
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v2
- - name: Set up JDK 1.8 for Shared Runner
- uses: actions/setup-java@v1
- with:
- java-version: 1.8
- server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
- settings-path: ${{ github.workspace }} # location for the settings.xml file
-
- - name: Build with Maven
- run: mvn -B package --file pom.xml
-
- - name: Publish to GitHub Packages Apache Maven
- run: mvn deploy -s $GITHUB_WORKSPACE/settings.xml
- env:
- GITHUB_TOKEN: ${{ github.token }}
-```
-
-# License
+## License
The scripts and documentation in this project are released under the [MIT License](LICENSE)
-# Contributions
+## Contributions
Contributions are welcome! See [Contributor's Guide](docs/contributors.md)
diff --git a/docs/advanced-usage.md b/docs/advanced-usage.md
new file mode 100644
index 00000000..c864ecad
--- /dev/null
+++ b/docs/advanced-usage.md
@@ -0,0 +1,290 @@
+# Usage
+- [Selecting Java distribution](#Selecting-Java-distribution)
+ - [Adoptium](#Adoptium)
+ - [Zulu](#Zulu)
+- [Installing custom Java package type](#Installing-custom-Java-package-type)
+- [Installing custom Java architecture](#Installing-custom-Java-architecture)
+- [Installing custom Java distribution from local file](#Installing-Java-from-local-file)
+- [Testing against different Java distributions](#Testing-against-different-Java-distributions)
+- [Testing against different platforms](#Testing-against-different-platforms)
+- [Publishing using Apache Maven](#Publishing-using-Apache-Maven)
+- [Publishing using Gradle](#Publishing-using-Gradle)
+
+See [action.yml](../action.yml) for more details on task inputs.
+
+## Selecting Java distribution
+Input `distribution` is mandatory and should be provided to use action. See [Supported distributions](../README.md#Supported-distributions) for the list of available options.
+
+### Adoptium
+```yaml
+steps:
+- uses: actions/checkout@v2
+- uses: actions/setup-java@v2-preview
+ with:
+ distribution: 'adoptium'
+ java-version: '11.x'
+- run: java -cp java HelloWorldApp
+```
+
+### Zulu
+```yaml
+steps:
+- uses: actions/checkout@v2
+- uses: actions/setup-java@v2-preview
+ with:
+ distribution: 'zulu'
+ java-version: '11.x'
+ java-package: jdk # optional (jdk, jre, jdk+fx or jre+fx) - defaults to jdk
+- run: java -cp java HelloWorldApp
+```
+
+## Installing custom Java package type
+```yaml
+steps:
+- uses: actions/checkout@v2
+- uses: actions/setup-java@v2-preview
+ with:
+ distribution: ''
+ java-version: '11.x'
+ java-package: jdk # optional (jdk or jre) - defaults to jdk
+- run: java -cp java HelloWorldApp
+```
+
+
+## Installing custom Java architecture
+
+```yaml
+steps:
+- uses: actions/checkout@v2
+- uses: actions/setup-java@v2-preview
+ with:
+ distribution: ''
+ java-version: '11.x'
+ architecture: x86 # optional - defaults to x64
+- run: java -cp java HelloWorldApp
+```
+
+## Installing Java from local file
+If your use-case requires custom distribution or version that is not provided by action, you can download it manually and then action will take care about installation and caching of this version on VM:
+
+```yaml
+steps:
+- run: |
+ download_url="https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.10_9.tar.gz"
+ wget -O $RUNNER_TEMP/java_package.tar.gz $download_url
+- uses: actions/setup-java@v2-preview
+ with:
+ distribution: 'jdkFile'
+ jdkFile: ${{ runner.temp }}/java_package.tar.gz
+ java-version: '11.0.0'
+ architecture: x64
+
+- run: java -cp java HelloWorldApp
+```
+
+## Testing against different Java distributions
+**NOTE:** The different distributors can provide discrepant list of available versions / supported configurations. Please refer to the official documentation to see the list of supported versions.
+```yaml
+jobs:
+ build:
+ runs-on: ubuntu-20.04
+ strategy:
+ matrix:
+ distribution: [ 'zulu', 'adoptium' ]
+ java: [ '8', '11', '13', '15' ]
+ name: Java ${{ matrix.Java }} (${{ matrix.distribution }}) sample
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup java
+ uses: actions/setup-java@v2-preview
+ with:
+ distribution: ${{ matrix.distribution }}
+ java-version: ${{ matrix.java }}
+ - run: java -cp java HelloWorldApp
+```
+
+#### Testing against different platforms
+```yaml
+jobs:
+ build:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ java: [ '8', '11' ]
+ os: [ 'ubuntu-latest', 'macos-latest', 'windows-latest' ]
+ name: Java ${{ matrix.Java }} (${{ matrix.os }}) sample
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup java
+ uses: actions/setup-java@v2-preview
+ with:
+ distribution: 'adoptium'
+ java-version: ${{ matrix.java }}
+ - run: java -cp java HelloWorldApp
+```
+
+## Publishing using Apache Maven
+
+### Extra setup for pom.xml:
+
+The Maven GPG Plugin configuration in the pom.xml file should contain the following structure to avoid possible issues like `Inappropriate ioctl for device` or `gpg: signing failed: No such file or directory`:
+
+```xml
+
+
+
+ --pinentry-mode
+ loopback
+
+
+```
+GPG 2.1 requires `--pinentry-mode` to be set to `loopback` in order to pick up the `gpg.passphrase` value defined in Maven `settings.xml`.
+
+### Yaml example:
+```yaml
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up JDK 8.x
+ uses: actions/setup-java@v2-preview
+ with:
+ distribution: ''
+ java-version: 8.x
+
+ - name: Build with Maven
+ run: mvn -B package --file pom.xml
+
+ - name: Publish to GitHub Packages Apache Maven
+ run: mvn deploy
+ env:
+ GITHUB_TOKEN: ${{ github.token }} # GITHUB_TOKEN is the default env for the password
+
+ - name: Set up Apache Maven Central
+ uses: actions/setup-java@v2-preview
+ with: # running setup-java again overwrites the settings.xml
+ server-id: maven # Value of the distributionManagement/repository/id field of the pom.xml
+ server-username: MAVEN_USERNAME # env variable for username in deploy
+ server-password: MAVEN_CENTRAL_TOKEN # env variable for token in deploy
+ gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
+ gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase
+
+ - name: Publish to Apache Maven Central
+ run: mvn deploy
+ env:
+ MAVEN_USERNAME: maven_username123
+ MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }}
+ MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
+```
+
+The two `settings.xml` files created from the above example look like the following.
+
+`settings.xml` file created for the first deploy to GitHub Packages
+```xml
+
+
+
+ github
+ ${env.GITHUB_ACTOR}
+ ${env.GITHUB_TOKEN}
+
+
+ gpg.passphrase
+ ${env.GPG_PASSPHRASE}
+
+
+
+```
+
+`settings.xml` file created for the second deploy to Apache Maven Central
+```xml
+
+
+
+ maven
+ ${env.MAVEN_USERNAME}
+ ${env.MAVEN_CENTRAL_TOKEN}
+
+
+ gpg.passphrase
+ ${env.MAVEN_GPG_PASSPHRASE}
+
+
+
+```
+
+***NOTE: The `settings.xml` file is created in the Actions $HOME/.m2 directory. If you have an existing `settings.xml` file at that location, it will be overwritten. See below for using the `settings-path` to change your `settings.xml` file location.***
+
+### GPG
+
+If `gpg-private-key` input is provided, the private key will be written to a file in the runner's temp directory, the private key file will be imported into the GPG keychain, and then the file will be promptly removed before proceeding with the rest of the setup process. A cleanup step will remove the imported private key from the GPG keychain after the job completes regardless of the job status. This ensures that the private key is no longer accessible on self-hosted runners and cannot "leak" between jobs (hosted runners are always clean instances).
+
+**GPG key should be exported by: `gpg --armor --export-secret-keys YOUR_ID`**
+
+See the help docs on [Publishing a Package](https://help.github.com/en/github/managing-packages-with-github-packages/configuring-apache-maven-for-use-with-github-packages#publishing-a-package) for more information on the `pom.xml` file.
+
+## Publishing using Gradle
+```yaml
+jobs:
+
+ build:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Set up JDK 8
+ uses: actions/setup-java@v2-preview
+ with:
+ distribution: ''
+ java-version: 8.x
+
+ - name: Build with Gradle
+ run: gradle build
+
+ - name: Publish to GitHub Packages
+ run: gradle publish
+ env:
+ USERNAME: ${{ github.actor }}
+ PASSWORD: ${{ secrets.GITHUB_TOKEN }}
+```
+
+***NOTE: The `USERNAME` and `PASSWORD` need to correspond to the credentials environment variables used in the publishing section of your `build.gradle`.***
+
+See the help docs on [Publishing a Package with Gradle](https://help.github.com/en/github/managing-packages-with-github-packages/configuring-gradle-for-use-with-github-packages#example-using-gradle-groovy-for-a-single-package-in-a-repository) for more information on the `build.gradle` configuration file.
+
+## 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.
+
+```yaml
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up JDK 8 for Shared Runner
+ uses: actions/setup-java@v2-preview
+ with:
+ distribution: ''
+ java-version: 8.x
+ server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
+ settings-path: ${{ github.workspace }} # location for the settings.xml file
+
+ - name: Build with Maven
+ run: mvn -B package --file pom.xml
+
+ - name: Publish to GitHub Packages Apache Maven
+ run: mvn deploy -s $GITHUB_WORKSPACE/settings.xml
+ env:
+ GITHUB_TOKEN: ${{ github.token }}
+```
diff --git a/docs/switching-to-v2.md b/docs/switching-to-v2.md
new file mode 100644
index 00000000..00e68267
--- /dev/null
+++ b/docs/switching-to-v2.md
@@ -0,0 +1,35 @@
+# Switching to V2
+## Java distribution
+The major breaking change in V2 is the new mandatory input `distribution`. This field should be specified with one of supported distributions. See [Supported distributions](../README.md#Supported-distributions) section for the list of available options.
+Use `zulu` keyword if you would like to continue using the same distribution as in the V1.
+```yaml
+steps:
+- uses: actions/checkout@v2
+- uses: actions/setup-java@v2-preview
+ with:
+ distribution: 'zulu'
+ java-version: '11.x'
+ java-package: jdk # optional (jdk or jre) - defaults to jdk
+- run: java -cp java HelloWorldApp
+```
+
+**General recommendation** — configure CI with the same distribution that is used on your local dev machine.
+
+## Installing custom Java distribution from local file
+Since `distribution` input is required in V2, you should specify it as `jdkFile` to continue installing Java from local file
+```yaml
+steps:
+- run: |
+ download_url="https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.10_9.tar.gz"
+ wget -O $RUNNER_TEMP/java_package.tar.gz $download_url
+- uses: actions/setup-java@v2-preview
+ with:
+ distribution: 'jdkFile'
+ jdkFile: ${{ runner.temp }}/java_package.tar.gz
+ java-version: '11.0.0'
+ architecture: x64
+```
+
+## Dropping legacy Java version syntax 1.x
+V1 supported legacy Java syntax like `1.8` (same as `8`), `1.8.0.212` (same as `8.0.212`).
+V2 dropped support of old syntax so workflows should be changed accordingly.
From c65c532df3b7174b80807bc86b3538e5672089d1 Mon Sep 17 00:00:00 2001
From: Maxim Lobanov
Date: Mon, 8 Mar 2021 18:49:54 +0300
Subject: [PATCH 2/8] minor improvements
---
README.md | 2 +-
docs/advanced-usage.md | 16 ++++++++--------
docs/switching-to-v2.md | 2 +-
3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/README.md b/README.md
index 43ac25a7..31c37388 100644
--- a/README.md
+++ b/README.md
@@ -26,7 +26,7 @@ steps:
- uses: actions/setup-java@v2-preview
with:
distribution: 'adoptium' # See 'Supported distributions' for available options
- java-version: '11.x'
+ java-version: '11'
- run: java -cp java HelloWorldApp
```
diff --git a/docs/advanced-usage.md b/docs/advanced-usage.md
index c864ecad..789381f1 100644
--- a/docs/advanced-usage.md
+++ b/docs/advanced-usage.md
@@ -22,7 +22,7 @@ steps:
- uses: actions/setup-java@v2-preview
with:
distribution: 'adoptium'
- java-version: '11.x'
+ java-version: '11'
- run: java -cp java HelloWorldApp
```
@@ -33,7 +33,7 @@ steps:
- uses: actions/setup-java@v2-preview
with:
distribution: 'zulu'
- java-version: '11.x'
+ java-version: '11'
java-package: jdk # optional (jdk, jre, jdk+fx or jre+fx) - defaults to jdk
- run: java -cp java HelloWorldApp
```
@@ -45,7 +45,7 @@ steps:
- uses: actions/setup-java@v2-preview
with:
distribution: ''
- java-version: '11.x'
+ java-version: '11'
java-package: jdk # optional (jdk or jre) - defaults to jdk
- run: java -cp java HelloWorldApp
```
@@ -59,7 +59,7 @@ steps:
- uses: actions/setup-java@v2-preview
with:
distribution: ''
- java-version: '11.x'
+ java-version: '11'
architecture: x86 # optional - defaults to x64
- run: java -cp java HelloWorldApp
```
@@ -149,11 +149,11 @@ jobs:
steps:
- uses: actions/checkout@v2
- - name: Set up JDK 8.x
+ - name: Set up JDK 8
uses: actions/setup-java@v2-preview
with:
distribution: ''
- java-version: 8.x
+ java-version: '8'
- name: Build with Maven
run: mvn -B package --file pom.xml
@@ -244,7 +244,7 @@ jobs:
uses: actions/setup-java@v2-preview
with:
distribution: ''
- java-version: 8.x
+ java-version: '8'
- name: Build with Gradle
run: gradle build
@@ -276,7 +276,7 @@ jobs:
uses: actions/setup-java@v2-preview
with:
distribution: ''
- java-version: 8.x
+ java-version: '8'
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
settings-path: ${{ github.workspace }} # location for the settings.xml file
diff --git a/docs/switching-to-v2.md b/docs/switching-to-v2.md
index 00e68267..0bf4b967 100644
--- a/docs/switching-to-v2.md
+++ b/docs/switching-to-v2.md
@@ -8,7 +8,7 @@ steps:
- uses: actions/setup-java@v2-preview
with:
distribution: 'zulu'
- java-version: '11.x'
+ java-version: '11'
java-package: jdk # optional (jdk or jre) - defaults to jdk
- run: java -cp java HelloWorldApp
```
From 7006d0be41feea707fe66aea42e294f4919d5138 Mon Sep 17 00:00:00 2001
From: Maxim Lobanov
Date: Tue, 9 Mar 2021 11:21:31 +0300
Subject: [PATCH 3/8] resolve comments
---
README.md | 10 +++++-----
docs/advanced-usage.md | 35 +++++++++++++++++------------------
docs/switching-to-v2.md | 10 +++++-----
3 files changed, 27 insertions(+), 28 deletions(-)
diff --git a/README.md b/README.md
index 31c37388..32e3ae15 100644
--- a/README.md
+++ b/README.md
@@ -5,15 +5,15 @@
This action provides the following functionality for GitHub Actions runners:
-- Downloading and setting up a requested version of Java. See [Usage](#Usage) section for the list of supported distributions
-- Extracting and caching custom version of Java from local file
+- Downloading and setting up a requested version of Java. See [Usage](#Usage) for a list of supported distributions
+- Extracting and caching custom version of Java from a local file
- Configuring runner for publishing using Apache Maven
- Configuring runner for publishing using Gradle
- Configuring runner for using GPG private key
- Registering problem matchers for error output
## V2 vs V1
-- V2 has support of custom distributions and provides support of Zulu OpenJDK and Adoptium (former AdoptOpenJDK) out of the box. V1 supports only Zulu OpenJDK
+- V2 has support of custom distributions and provides support of Zulu OpenJDK and Adoptium (formerly known as AdoptOpenJDK) out of the box. V1 supports only Zulu OpenJDK
- V2 requires you to specify distribution along with the version. V1 defaults to Zulu OpenJDK, only version input is required. Follow [the migration guide](docs/switching-to-v2.md) to switch from V1 to V2
## Usage
@@ -31,10 +31,10 @@ steps:
```
#### Supported version syntax
-Input `java-version` supports version range or exact version in [SemVer](https://semver.org/) format:
+The `java-version` input supports an exact version or a version range using [SemVer](https://semver.org/) notation:
- major versions: `8`, `11`, `15`, `11.x`
- more specific versions: `8.0.232`, `11.0.4`, `11.0`, `11.0.x`
-- an early access (EA) versions: `15-ea`, `15.0.0-ea`, `15.0.0-ea.2`
+- early access (EA) versions: `15-ea`, `15.0.0-ea`, `15.0.0-ea.2`
#### Supported distributions
Currently, the following distributions are supported:
diff --git a/docs/advanced-usage.md b/docs/advanced-usage.md
index 789381f1..db7344df 100644
--- a/docs/advanced-usage.md
+++ b/docs/advanced-usage.md
@@ -13,7 +13,7 @@
See [action.yml](../action.yml) for more details on task inputs.
## Selecting Java distribution
-Input `distribution` is mandatory and should be provided to use action. See [Supported distributions](../README.md#Supported-distributions) for the list of available options.
+Input `distribution` is mandatory and needs to be provided to use action. See [Supported distributions](../README.md#Supported-distributions) for a list of available options.
### Adoptium
```yaml
@@ -65,7 +65,7 @@ steps:
```
## Installing Java from local file
-If your use-case requires custom distribution or version that is not provided by action, you can download it manually and then action will take care about installation and caching of this version on VM:
+If your use-case requires a custom distribution or a version that is not provided by setup-java, you can download it manually and setup-java will take care of the installation and caching on the VM:
```yaml
steps:
@@ -124,22 +124,6 @@ jobs:
```
## Publishing using Apache Maven
-
-### Extra setup for pom.xml:
-
-The Maven GPG Plugin configuration in the pom.xml file should contain the following structure to avoid possible issues like `Inappropriate ioctl for device` or `gpg: signing failed: No such file or directory`:
-
-```xml
-
-
-
- --pinentry-mode
- loopback
-
-
-```
-GPG 2.1 requires `--pinentry-mode` to be set to `loopback` in order to pick up the `gpg.passphrase` value defined in Maven `settings.xml`.
-
### Yaml example:
```yaml
jobs:
@@ -222,6 +206,21 @@ The two `settings.xml` files created from the above example look like the follow
***NOTE: The `settings.xml` file is created in the Actions $HOME/.m2 directory. If you have an existing `settings.xml` file at that location, it will be overwritten. See below for using the `settings-path` to change your `settings.xml` file location.***
+### Extra setup for pom.xml:
+
+The Maven GPG Plugin configuration in the pom.xml file should contain the following structure to avoid possible issues like `Inappropriate ioctl for device` or `gpg: signing failed: No such file or directory`:
+
+```xml
+
+
+
+ --pinentry-mode
+ loopback
+
+
+```
+GPG 2.1 requires `--pinentry-mode` to be set to `loopback` in order to pick up the `gpg.passphrase` value defined in Maven `settings.xml`.
+
### GPG
If `gpg-private-key` input is provided, the private key will be written to a file in the runner's temp directory, the private key file will be imported into the GPG keychain, and then the file will be promptly removed before proceeding with the rest of the setup process. A cleanup step will remove the imported private key from the GPG keychain after the job completes regardless of the job status. This ensures that the private key is no longer accessible on self-hosted runners and cannot "leak" between jobs (hosted runners are always clean instances).
diff --git a/docs/switching-to-v2.md b/docs/switching-to-v2.md
index 0bf4b967..b834f093 100644
--- a/docs/switching-to-v2.md
+++ b/docs/switching-to-v2.md
@@ -1,7 +1,7 @@
# Switching to V2
## Java distribution
-The major breaking change in V2 is the new mandatory input `distribution`. This field should be specified with one of supported distributions. See [Supported distributions](../README.md#Supported-distributions) section for the list of available options.
-Use `zulu` keyword if you would like to continue using the same distribution as in the V1.
+The major breaking change in V2 is the new mandatory `distribution` input. This field should be specified with one of supported distributions. See [Supported distributions](../README.md#Supported-distributions) for a list of available options.
+Use the `zulu` keyword if you would like to continue using the same distribution as in the V1.
```yaml
steps:
- uses: actions/checkout@v2
@@ -16,7 +16,7 @@ steps:
**General recommendation** — configure CI with the same distribution that is used on your local dev machine.
## Installing custom Java distribution from local file
-Since `distribution` input is required in V2, you should specify it as `jdkFile` to continue installing Java from local file
+Since the `distribution` input is required in V2, you should specify it using `jdkFile` to continue installing Java from a local file on the runner
```yaml
steps:
- run: |
@@ -31,5 +31,5 @@ steps:
```
## Dropping legacy Java version syntax 1.x
-V1 supported legacy Java syntax like `1.8` (same as `8`), `1.8.0.212` (same as `8.0.212`).
-V2 dropped support of old syntax so workflows should be changed accordingly.
+V1 supported legacy Java syntax such as `1.8` (same as `8`) and `1.8.0.212` (same as `8.0.212`).
+V2 dropped support for legacy syntax so workflows should be updated accordingly.
From 6738676573fab7517c37b58a1db0d7f22e1ac882 Mon Sep 17 00:00:00 2001
From: Maxim Lobanov
Date: Tue, 9 Mar 2021 16:12:07 +0300
Subject: [PATCH 4/8] Update README.md
Co-authored-by: George Adams
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 32e3ae15..3e6de3f6 100644
--- a/README.md
+++ b/README.md
@@ -41,7 +41,7 @@ Currently, the following distributions are supported:
| Keyword | Distribution | Official site | License |
|-|-|-|-|
| `zulu` | Zulu (Zulu OpenJDK) | [Link](https://www.azul.com/downloads/zulu-community/?package=jdk) | [Link](https://www.azul.com/products/zulu-and-zulu-enterprise/zulu-terms-of-use/) |
-| `adoptium` | Adoptium (former Adopt OpenJDK) | [Link](https://adoptopenjdk.net/) | [Link](https://adoptopenjdk.net/about.html)
+| `adoptium` | Adoptium (formerly AdoptOpenJDK) | [Link](https://adoptopenjdk.net/) | [Link](https://adoptopenjdk.net/about.html)
**NOTE:** The different distributors can provide discrepant list of available versions / supported configurations. Please refer to the official documentation to see the list of supported versions.
From 50ef02aa7c4bcbf4c9625e28c5580c28e42f1348 Mon Sep 17 00:00:00 2001
From: Maxim Lobanov
Date: Tue, 9 Mar 2021 22:58:42 +0300
Subject: [PATCH 5/8] Apply suggestions from code review
Co-authored-by: Konrad Pabjan
---
README.md | 4 ++--
docs/advanced-usage.md | 6 +++---
docs/switching-to-v2.md | 2 +-
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
index 3e6de3f6..5faa52cb 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@ This action provides the following functionality for GitHub Actions runners:
- Registering problem matchers for error output
## V2 vs V1
-- V2 has support of custom distributions and provides support of Zulu OpenJDK and Adoptium (formerly known as AdoptOpenJDK) out of the box. V1 supports only Zulu OpenJDK
+- V2 supports custom distributions and provides support for Zulu OpenJDK and Adoptium (formerly known as AdoptOpenJDK) out of the box. V1 supports only Zulu OpenJDK
- V2 requires you to specify distribution along with the version. V1 defaults to Zulu OpenJDK, only version input is required. Follow [the migration guide](docs/switching-to-v2.md) to switch from V1 to V2
## Usage
@@ -65,7 +65,7 @@ jobs:
```
### Advanced
-- [Selecting Java distribution](docs/advanced-usage.md#Selecting-Java-distribution)
+- [Selecting a Java distribution](docs/advanced-usage.md#Selecting-a-Java-distribution)
- [Adoptium](docs/advanced-usage.md#Adoptium)
- [Zulu](docs/advanced-usage.md#Zulu)
- [Installing custom Java package type](docs/advanced-usage.md#Installing-custom-Java-package-type)
diff --git a/docs/advanced-usage.md b/docs/advanced-usage.md
index db7344df..54ca1086 100644
--- a/docs/advanced-usage.md
+++ b/docs/advanced-usage.md
@@ -1,5 +1,5 @@
# Usage
-- [Selecting Java distribution](#Selecting-Java-distribution)
+- [Selecting a Java distribution](#Selecting-a-Java-distribution)
- [Adoptium](#Adoptium)
- [Zulu](#Zulu)
- [Installing custom Java package type](#Installing-custom-Java-package-type)
@@ -12,8 +12,8 @@
See [action.yml](../action.yml) for more details on task inputs.
-## Selecting Java distribution
-Input `distribution` is mandatory and needs to be provided to use action. See [Supported distributions](../README.md#Supported-distributions) for a list of available options.
+## Selecting a Java distribution
+Input `distribution` is mandatory and needs to be provided. See [Supported distributions](../README.md#Supported-distributions) for a list of available options.
### Adoptium
```yaml
diff --git a/docs/switching-to-v2.md b/docs/switching-to-v2.md
index b834f093..dd386234 100644
--- a/docs/switching-to-v2.md
+++ b/docs/switching-to-v2.md
@@ -1,7 +1,7 @@
# Switching to V2
## Java distribution
The major breaking change in V2 is the new mandatory `distribution` input. This field should be specified with one of supported distributions. See [Supported distributions](../README.md#Supported-distributions) for a list of available options.
-Use the `zulu` keyword if you would like to continue using the same distribution as in the V1.
+Use the `zulu` keyword if you would like to continue using the same distribution as in V1.
```yaml
steps:
- uses: actions/checkout@v2
From f6c63d854c5f252c84fb300d711c230fd2a6f432 Mon Sep 17 00:00:00 2001
From: Maxim Lobanov
Date: Wed, 10 Mar 2021 20:04:09 +0300
Subject: [PATCH 6/8] Update README.md
---
README.md | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 5faa52cb..532f079e 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ This action provides the following functionality for GitHub Actions runners:
- V2 requires you to specify distribution along with the version. V1 defaults to Zulu OpenJDK, only version input is required. Follow [the migration guide](docs/switching-to-v2.md) to switch from V1 to V2
## Usage
-Input `distribution` is mandatory. See [Supported distributions](../README.md#Supported-distributions) section for the list of available options.
+Input `distribution` is mandatory. See [Supported distributions](../README.md#Supported-distributions) section for a list of available options.
### Basic
```yaml
@@ -33,9 +33,11 @@ steps:
#### Supported version syntax
The `java-version` input supports an exact version or a version range using [SemVer](https://semver.org/) notation:
- major versions: `8`, `11`, `15`, `11.x`
-- more specific versions: `8.0.232`, `11.0.4`, `11.0`, `11.0.x`
+- more specific versions: `11.0`, `11.0.4`, `8.0.232`, `8.0.282+8`
- early access (EA) versions: `15-ea`, `15.0.0-ea`, `15.0.0-ea.2`
+**Note:** Java is always downloaded in runtime when version is specified with build number (such as `8.0.282+8` or `15.0.0-ea.2`). This notation doesn't use pre-cached versions.
+
#### Supported distributions
Currently, the following distributions are supported:
| Keyword | Distribution | Official site | License |
From f76160993110d5fc0f9e52f70323c4aaaa4b01cb Mon Sep 17 00:00:00 2001
From: Maxim Lobanov
Date: Thu, 11 Mar 2021 11:03:19 +0300
Subject: [PATCH 7/8] rename adoptium to adopt
---
README.md | 10 +++++-----
docs/advanced-usage.md | 10 +++++-----
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/README.md b/README.md
index 532f079e..e1f6b813 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@ This action provides the following functionality for GitHub Actions runners:
- Registering problem matchers for error output
## V2 vs V1
-- V2 supports custom distributions and provides support for Zulu OpenJDK and Adoptium (formerly known as AdoptOpenJDK) out of the box. V1 supports only Zulu OpenJDK
+- V2 supports custom distributions and provides support for Zulu OpenJDK and Adopt OpenJDK out of the box. V1 supports only Zulu OpenJDK
- V2 requires you to specify distribution along with the version. V1 defaults to Zulu OpenJDK, only version input is required. Follow [the migration guide](docs/switching-to-v2.md) to switch from V1 to V2
## Usage
@@ -25,7 +25,7 @@ steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v2-preview
with:
- distribution: 'adoptium' # See 'Supported distributions' for available options
+ distribution: 'adopt' # See 'Supported distributions' for available options
java-version: '11'
- run: java -cp java HelloWorldApp
```
@@ -42,8 +42,8 @@ The `java-version` input supports an exact version or a version range using [Sem
Currently, the following distributions are supported:
| Keyword | Distribution | Official site | License |
|-|-|-|-|
-| `zulu` | Zulu (Zulu OpenJDK) | [Link](https://www.azul.com/downloads/zulu-community/?package=jdk) | [Link](https://www.azul.com/products/zulu-and-zulu-enterprise/zulu-terms-of-use/) |
-| `adoptium` | Adoptium (formerly AdoptOpenJDK) | [Link](https://adoptopenjdk.net/) | [Link](https://adoptopenjdk.net/about.html)
+| `zulu` | Zulu OpenJDK | [Link](https://www.azul.com/downloads/zulu-community/?package=jdk) | [Link](https://www.azul.com/products/zulu-and-zulu-enterprise/zulu-terms-of-use/) |
+| `adopt` | Adopt OpenJDK | [Link](https://adoptopenjdk.net/) | [Link](https://adoptopenjdk.net/about.html)
**NOTE:** The different distributors can provide discrepant list of available versions / supported configurations. Please refer to the official documentation to see the list of supported versions.
@@ -68,7 +68,7 @@ jobs:
### Advanced
- [Selecting a Java distribution](docs/advanced-usage.md#Selecting-a-Java-distribution)
- - [Adoptium](docs/advanced-usage.md#Adoptium)
+ - [Adopt](docs/advanced-usage.md#Adopt)
- [Zulu](docs/advanced-usage.md#Zulu)
- [Installing custom Java package type](docs/advanced-usage.md#Installing-custom-Java-package-type)
- [Installing custom Java architecture](docs/advanced-usage.md#Installing-custom-Java-architecture)
diff --git a/docs/advanced-usage.md b/docs/advanced-usage.md
index 54ca1086..c45bd0c7 100644
--- a/docs/advanced-usage.md
+++ b/docs/advanced-usage.md
@@ -1,6 +1,6 @@
# Usage
- [Selecting a Java distribution](#Selecting-a-Java-distribution)
- - [Adoptium](#Adoptium)
+ - [Adopt](#Adopt)
- [Zulu](#Zulu)
- [Installing custom Java package type](#Installing-custom-Java-package-type)
- [Installing custom Java architecture](#Installing-custom-Java-architecture)
@@ -15,13 +15,13 @@ See [action.yml](../action.yml) for more details on task inputs.
## Selecting a Java distribution
Input `distribution` is mandatory and needs to be provided. See [Supported distributions](../README.md#Supported-distributions) for a list of available options.
-### Adoptium
+### Adopt
```yaml
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v2-preview
with:
- distribution: 'adoptium'
+ distribution: 'adopt'
java-version: '11'
- run: java -cp java HelloWorldApp
```
@@ -90,7 +90,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
- distribution: [ 'zulu', 'adoptium' ]
+ distribution: [ 'zulu', 'adopt' ]
java: [ '8', '11', '13', '15' ]
name: Java ${{ matrix.Java }} (${{ matrix.distribution }}) sample
steps:
@@ -118,7 +118,7 @@ jobs:
- name: Setup java
uses: actions/setup-java@v2-preview
with:
- distribution: 'adoptium'
+ distribution: 'adopt'
java-version: ${{ matrix.java }}
- run: java -cp java HelloWorldApp
```
From 03ecfa021620143b6628991964571a75bfe7e3cc Mon Sep 17 00:00:00 2001
From: Maxim Lobanov
Date: Thu, 11 Mar 2021 11:13:40 +0300
Subject: [PATCH 8/8] Update README.md
---
README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index e1f6b813..fd636f1c 100644
--- a/README.md
+++ b/README.md
@@ -32,11 +32,11 @@ steps:
#### Supported version syntax
The `java-version` input supports an exact version or a version range using [SemVer](https://semver.org/) notation:
-- major versions: `8`, `11`, `15`, `11.x`
+- major versions: `8`, `11`, `15`
- more specific versions: `11.0`, `11.0.4`, `8.0.232`, `8.0.282+8`
-- early access (EA) versions: `15-ea`, `15.0.0-ea`, `15.0.0-ea.2`
+- early access (EA) versions: `15-ea`, `15.0.0-ea`, `15.0.0-ea.2`, `15.0.0+2-ea`
-**Note:** Java is always downloaded in runtime when version is specified with build number (such as `8.0.282+8` or `15.0.0-ea.2`). This notation doesn't use pre-cached versions.
+**Note:** 4-digit notation will always force action to skip checking pre-cached versions and download version in runtime.
#### Supported distributions
Currently, the following distributions are supported: