Add output parameters for the tool path and version

This allows calling the action multiple times in the
same job and retrieving the path and/or version in
other steps.

Fixes #65
This commit is contained in:
Thomas Broyer 2020-05-24 20:03:57 +02:00
parent 4003c04fbc
commit 457d7a4579
6 changed files with 56 additions and 6 deletions

View file

@ -35,15 +35,16 @@ jobs:
if: runner.os == 'windows' if: runner.os == 'windows'
run: move "${{ runner.tool_cache }}" "${{ runner.tool_cache }}.old" run: move "${{ runner.tool_cache }}" "${{ runner.tool_cache }}.old"
- name: Setup Java 13 - name: Setup Java 13
id: setup-java
uses: ./ uses: ./
with: with:
java-version: 13.0.2 java-version: 13.0.2
- name: Verify Java 13 - name: Verify Java 13
if: runner.os != 'windows' if: runner.os != 'windows'
run: __tests__/verify-java.sh 13.0.2 run: __tests__/verify-java.sh 13.0.2 "${{ steps.setup-java.outputs.path }}" "${{ steps.setup-java.outputs.version }}"
- name: Verify Java 13 (Windows) - name: Verify Java 13 (Windows)
if: runner.os == 'windows' if: runner.os == 'windows'
run: __tests__/verify-java.ps1 13.0.2 run: __tests__/verify-java.ps1 13.0.2 "${{ steps.setup-java.outputs.path }}" "${{ steps.setup-java.outputs.version }}"
test-proxy: test-proxy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -62,11 +63,12 @@ jobs:
- name: Clear tool cache - name: Clear tool cache
run: rm -rf $RUNNER_TOOL_CACHE/* run: rm -rf $RUNNER_TOOL_CACHE/*
- name: Setup Java 13 - name: Setup Java 13
id: setup-java
uses: ./ uses: ./
with: with:
java-version: 13.0.2 java-version: 13.0.2
- name: Verify Java 13 - name: Verify Java 13
run: __tests__/verify-java.sh 13.0.2 run: __tests__/verify-java.sh 13.0.2 "${{ steps.setup-java.outputs.path }}" "${{ steps.setup-java.outputs.version }}"
test-bypass-proxy: test-bypass-proxy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -78,8 +80,9 @@ jobs:
- name: Clear tool cache - name: Clear tool cache
run: rm -rf $RUNNER_TOOL_CACHE/* run: rm -rf $RUNNER_TOOL_CACHE/*
- name: Setup Java 13 - name: Setup Java 13
id: setup-java
uses: ./ uses: ./
with: with:
java-version: 13.0.2 java-version: 13.0.2
- name: Verify Java 13 - name: Verify Java 13
run: __tests__/verify-java.sh 13.0.2 run: __tests__/verify-java.sh 13.0.2 "${{ steps.setup-java.outputs.path }}" "${{ steps.setup-java.outputs.version }}"

View file

@ -9,3 +9,23 @@ if (!$java_version.Contains($args[0]))
{ {
throw "Unexpected version" throw "Unexpected version"
} }
if ($args.Count -lt 2 -or !$args[1])
{
throw "Must supply java path argument"
}
if ($args[1] -ne $Env:JAVA_HOME)
{
throw "Unexpected path"
}
if ($args.Count -lt 3 -or !$args[2])
{
throw "Must supply java version argument"
}
if ($args[0] -ne $args[2])
{
throw "Unexpected version"
}

View file

@ -1,13 +1,33 @@
#!/bin/sh #!/bin/sh
if [ -z "$1" ]; then if [ -z "$1" ]; then
echo "Must supply java version argument" echo "::error::Must supply java version argument"
exit 1 exit 1
fi fi
java_version="$(java -version 2>&1)" java_version="$(java -version 2>&1)"
echo "Found java version: $java_version" echo "Found java version: $java_version"
if [ -z "$(echo $java_version | grep --fixed-strings $1)" ]; then if [ -z "$(echo $java_version | grep --fixed-strings $1)" ]; then
echo "Unexpected version" echo "::error::Unexpected version"
exit 1
fi
if [ -z "$2" ]; then
echo "::error::Must supply java path argument"
exit 1
fi
if [ "$2" != "$JAVA_HOME" ]; then
echo "::error::Unexpected path"
exit 1
fi
if [ -z "$3" ]; then
echo "::error::Must supply java version argument"
exit 1
fi
if [ "$1" != "$3" ]; then
echo "::error::Unexpected version"
exit 1 exit 1
fi fi

View file

@ -36,6 +36,11 @@ inputs:
settings-path: settings-path:
description: 'Path to where the settings.xml file will be written. Default is ~/.m2.' description: 'Path to where the settings.xml file will be written. Default is ~/.m2.'
required: false required: false
outputs:
path:
description: 'Path to where the java environment has been installed (same as $JAVA_HOME)'
version:
description: 'Actual version of the java environment that has been installed'
runs: runs:
using: 'node12' using: 'node12'
main: 'dist/index.js' main: 'dist/index.js'

BIN
dist/index.js generated vendored

Binary file not shown.

View file

@ -90,6 +90,8 @@ export async function getJava(
core.exportVariable('JAVA_HOME', toolPath); core.exportVariable('JAVA_HOME', toolPath);
core.exportVariable(extendedJavaHome, toolPath); core.exportVariable(extendedJavaHome, toolPath);
core.addPath(path.join(toolPath, 'bin')); core.addPath(path.join(toolPath, 'bin'));
core.setOutput('path', toolPath);
core.setOutput('version', version);
} }
function getCacheVersionString(version: string) { function getCacheVersionString(version: string) {