Skip to content

Commit

Permalink
Add output parameters for the tool path and version
Browse files Browse the repository at this point in the history
This allows calling the action multiple times in the
same job and retrieving the path and/or version in
other steps.

Fixes actions#65
  • Loading branch information
tbroyer committed May 27, 2020
1 parent 4003c04 commit 457d7a4
Show file tree
Hide file tree
Showing 6 changed files with 121 additions and 37 deletions.
11 changes: 7 additions & 4 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,16 @@ jobs:
if: runner.os == 'windows'
run: move "${{ runner.tool_cache }}" "${{ runner.tool_cache }}.old"
- name: Setup Java 13
id: setup-java
uses: ./
with:
java-version: 13.0.2
- name: Verify Java 13
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)
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:
runs-on: ubuntu-latest
Expand All @@ -62,11 +63,12 @@ jobs:
- name: Clear tool cache
run: rm -rf $RUNNER_TOOL_CACHE/*
- name: Setup Java 13
id: setup-java
uses: ./
with:
java-version: 13.0.2
- 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:
runs-on: ubuntu-latest
Expand All @@ -78,8 +80,9 @@ jobs:
- name: Clear tool cache
run: rm -rf $RUNNER_TOOL_CACHE/*
- name: Setup Java 13
id: setup-java
uses: ./
with:
java-version: 13.0.2
- 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 }}"
20 changes: 20 additions & 0 deletions __tests__/verify-java.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,23 @@ if (!$java_version.Contains($args[0]))
{
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"
}
24 changes: 22 additions & 2 deletions __tests__/verify-java.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,33 @@
#!/bin/sh

if [ -z "$1" ]; then
echo "Must supply java version argument"
echo "::error::Must supply java version argument"
exit 1
fi

java_version="$(java -version 2>&1)"
echo "Found java version: $java_version"
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
fi
5 changes: 5 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@ inputs:
settings-path:
description: 'Path to where the settings.xml file will be written. Default is ~/.m2.'
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:
using: 'node12'
main: 'dist/index.js'
96 changes: 65 additions & 31 deletions dist/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions src/installer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,8 @@ export async function getJava(
core.exportVariable('JAVA_HOME', toolPath);
core.exportVariable(extendedJavaHome, toolPath);
core.addPath(path.join(toolPath, 'bin'));
core.setOutput('path', toolPath);
core.setOutput('version', version);
}

function getCacheVersionString(version: string) {
Expand Down

0 comments on commit 457d7a4

Please sign in to comment.