Look for gradle wrapper in build-root-directory by default

This removes the need to specify `wrapper-directory` when using a Gradle
project that is not located in the root of the workspace.

Fixes #44.
This commit is contained in:
Daz DeBoer 2021-06-24 10:45:43 -07:00
parent 13d33a88ca
commit 18c8a679dc
3 changed files with 23 additions and 9 deletions

View file

@ -17,11 +17,18 @@ jobs:
- name: Test wrapper
uses: ./
with:
wrapper-directory: __tests__/data/basic
build-root-directory: __tests__/data/basic
dependencies-cache-enabled: true
configuration-cache-enabled: true
arguments: test
- name: Test custom wrapper location
uses: ./
with:
build-root-directory: __tests__/data/basic
wrapper-directory: __tests__/data/basic
dependencies-cache-enabled: false
configuration-cache-enabled: false
arguments: test
- name: Test dist download
uses: ./
with:

2
dist/main/index.js vendored

File diff suppressed because one or more lines are too long

View file

@ -11,11 +11,15 @@ import * as provision from './provision'
// Invoked by GitHub Actions
export async function run(): Promise<void> {
try {
const baseDirectory = process.env[`GITHUB_WORKSPACE`] || ''
const workspaceDirectory = process.env[`GITHUB_WORKSPACE`] || ''
const buildRootDirectory = resolveBuildRootDirectory(workspaceDirectory)
const result = await execution.execute(
await resolveGradleExecutable(baseDirectory),
resolveBuildRootDirectory(baseDirectory),
await resolveGradleExecutable(
workspaceDirectory,
buildRootDirectory
),
buildRootDirectory,
parseCommandLineArguments()
)
@ -33,7 +37,10 @@ export async function run(): Promise<void> {
run()
async function resolveGradleExecutable(baseDirectory: string): Promise<string> {
async function resolveGradleExecutable(
workspaceDirectory: string,
buildRootDirectory: string
): Promise<string> {
const gradleVersion = github.inputOrNull('gradle-version')
if (gradleVersion !== null && gradleVersion !== 'wrapper') {
return path.resolve(await provision.gradleVersion(gradleVersion))
@ -46,14 +53,14 @@ async function resolveGradleExecutable(baseDirectory: string): Promise<string> {
path.resolve(gradleExecutable, '..')
)
}
return path.resolve(baseDirectory, gradleExecutable)
return path.resolve(workspaceDirectory, gradleExecutable)
}
const wrapperDirectory = github.inputOrNull('wrapper-directory')
const gradlewDirectory =
wrapperDirectory !== null
? path.join(baseDirectory, wrapperDirectory)
: baseDirectory
? path.resolve(workspaceDirectory, wrapperDirectory)
: buildRootDirectory
await cacheWrapper.restoreCachedWrapperDist(gradlewDirectory)