diff --git a/action.yml b/action.yml index 904ee90..db67d49 100644 --- a/action.yml +++ b/action.yml @@ -24,28 +24,34 @@ inputs: distributions-cache-enabled: description: Whether caching downloaded Gradle distributions is enabled or not, default to 'true' required: false + default: true wrapper-cache-enabled: description: Whether caching wrapper installation is enabled or not, default to 'true' required: false + default: true deprecationMessage: Replaced by 'distributions-cache-enabled' which enables caching for all downloaded Gradle distributions dependencies-cache-enabled: description: Whether caching dependencies is enabled or not, default to 'false' required: false + default: false dependencies-cache-key: description: Globs of files to hash in the build root directory, separated by new lines, use best-effort if unset required: false dependencies-cache-exact: description: Whether to restore only if exact match, default to 'false' required: false + default: false configuration-cache-enabled: description: Whether caching build configuration is enabled or not, default to 'false' required: false + default: false configuration-cache-key: description: Globs of files to hash in the build root directory, separated by new lines, use best-effort if unset required: false configuration-cache-exact: description: Whether to restore only if exact match, default to 'false' required: false + default: false outputs: build-scan-url: diff --git a/src/cache-configuration.ts b/src/cache-configuration.ts index f8d848e..dbaac52 100644 --- a/src/cache-configuration.ts +++ b/src/cache-configuration.ts @@ -4,7 +4,6 @@ import fs from 'fs' import * as core from '@actions/core' import * as cache from '@actions/cache' -import * as github from './github-utils' import * as crypto from './crypto-utils' import {inputCacheKeyGlobs, tryDeleteFiles} from './cache-dependencies' @@ -22,7 +21,7 @@ export async function restoreCachedConfiguration( if (fs.existsSync(cachePath)) return core.saveState(CONFIGURATION_CACHE_PATH, cachePath) - const inputCacheExact = github.inputBoolean('configuration-cache-exact') + const inputCacheExact = core.getBooleanInput('configuration-cache-exact') const cacheKeyGlobs = inputCacheKeyGlobs('configuration-cache-key') const hash = await crypto.hashFiles(rootDir, cacheKeyGlobs) @@ -93,5 +92,5 @@ export async function cacheConfiguration(): Promise { } function isConfigurationCacheDisabled(): boolean { - return !github.inputBoolean('configuration-cache-enabled', false) + return !core.getBooleanInput('configuration-cache-enabled') } diff --git a/src/cache-dependencies.ts b/src/cache-dependencies.ts index 9ff56c5..04f3f64 100644 --- a/src/cache-dependencies.ts +++ b/src/cache-dependencies.ts @@ -5,7 +5,6 @@ import * as os from 'os' import * as core from '@actions/core' import * as cache from '@actions/cache' -import * as github from './github-utils' import * as crypto from './crypto-utils' const DEPENDENCIES_CACHE_PATH = 'DEPENDENCIES_CACHE_PATH' @@ -21,7 +20,7 @@ export async function restoreCachedDependencies( if (fs.existsSync(cachePath)) return core.saveState(DEPENDENCIES_CACHE_PATH, cachePath) - const inputCacheExact = github.inputBoolean('dependencies-cache-exact') + const inputCacheExact = core.getBooleanInput('dependencies-cache-exact') const cacheKeyGlobs = inputCacheKeyGlobs('dependencies-cache-key') const hash = await crypto.hashFiles(rootDir, cacheKeyGlobs) @@ -104,12 +103,12 @@ export function tryDeleteFiles(filePaths: string[]): boolean { } function isDependenciesCacheDisabled(): boolean { - return !github.inputBoolean('dependencies-cache-enabled', false) + return !core.getBooleanInput('dependencies-cache-enabled') } export function inputCacheKeyGlobs(input: string): string[] { - const inputValue = github.inputArrayOrNull(input) - return inputValue + const inputValue = core.getMultilineInput(input) + return inputValue.length > 0 ? inputValue : [ '**/*.gradle', diff --git a/src/cache-wrapper.ts b/src/cache-wrapper.ts index 88a5907..981f5c8 100644 --- a/src/cache-wrapper.ts +++ b/src/cache-wrapper.ts @@ -5,8 +5,6 @@ import * as os from 'os' import * as core from '@actions/core' import * as cache from '@actions/cache' -import * as github from './github-utils' - const WRAPPER_SLUG = 'WRAPPER_SLUG' export async function restoreCachedWrapperDist( @@ -108,13 +106,9 @@ export function extractGradleWrapperSlugFromDistUri( function isWrapperCacheDisabled(): boolean { // Check if either 'distributions' or 'wrapper' cache has been disabled - const wrapperCacheEnabled = github.inputBoolean( - 'wrapper-cache-enabled', - true - ) - const distributionsCacheEnabled = github.inputBoolean( - 'distributions-cache-enabled', - true + const wrapperCacheEnabled = core.getBooleanInput('wrapper-cache-enabled') + const distributionsCacheEnabled = core.getBooleanInput( + 'distributions-cache-enabled' ) return !wrapperCacheEnabled || !distributionsCacheEnabled } diff --git a/src/github-utils.ts b/src/github-utils.ts deleted file mode 100644 index ae26745..0000000 --- a/src/github-utils.ts +++ /dev/null @@ -1,24 +0,0 @@ -import * as core from '@actions/core' - -export function inputOrNull(name: string): string | null { - const inputString = core.getInput(name, {required: false}) - if (inputString.length === 0) { - return null - } - return inputString -} - -export function inputArrayOrNull(name: string): string[] | null { - const string = inputOrNull(name) - if (!string) return null - return string - .split('\n') - .map(s => s.trim()) - .filter(s => s !== '') -} - -export function inputBoolean(name: string, defaultValue = false): boolean { - const string = inputOrNull(name) - if (!string) return defaultValue - return string === 'true' -} diff --git a/src/main.ts b/src/main.ts index f799b30..a62b5ec 100644 --- a/src/main.ts +++ b/src/main.ts @@ -2,7 +2,6 @@ import * as core from '@actions/core' import * as path from 'path' import {parseArgsStringToArgv} from 'string-argv' -import * as github from './github-utils' import * as cacheWrapper from './cache-wrapper' import * as execution from './execution' import * as gradlew from './gradlew' @@ -41,13 +40,13 @@ async function resolveGradleExecutable( workspaceDirectory: string, buildRootDirectory: string ): Promise { - const gradleVersion = github.inputOrNull('gradle-version') - if (gradleVersion !== null && gradleVersion !== 'wrapper') { + const gradleVersion = core.getInput('gradle-version') + if (gradleVersion !== '' && gradleVersion !== 'wrapper') { return path.resolve(await provision.gradleVersion(gradleVersion)) } - const gradleExecutable = github.inputOrNull('gradle-executable') - if (gradleExecutable !== null) { + const gradleExecutable = core.getInput('gradle-executable') + if (gradleExecutable !== '') { if (gradleExecutable.endsWith(gradlew.wrapperFilename())) { await cacheWrapper.restoreCachedWrapperDist( path.resolve(gradleExecutable, '..') @@ -56,9 +55,9 @@ async function resolveGradleExecutable( return path.resolve(workspaceDirectory, gradleExecutable) } - const wrapperDirectory = github.inputOrNull('wrapper-directory') + const wrapperDirectory = core.getInput('wrapper-directory') const gradlewDirectory = - wrapperDirectory !== null + wrapperDirectory !== '' ? path.resolve(workspaceDirectory, wrapperDirectory) : buildRootDirectory @@ -69,15 +68,15 @@ async function resolveGradleExecutable( } function resolveBuildRootDirectory(baseDirectory: string): string { - const buildRootDirectory = github.inputOrNull('build-root-directory') + const buildRootDirectory = core.getInput('build-root-directory') const resolvedBuildRootDirectory = - buildRootDirectory === null + buildRootDirectory === '' ? path.resolve(baseDirectory) : path.resolve(baseDirectory, buildRootDirectory) return resolvedBuildRootDirectory } function parseCommandLineArguments(): string[] { - const input = github.inputOrNull('arguments') - return input === null ? [] : parseArgsStringToArgv(input) + const input = core.getInput('arguments') + return parseArgsStringToArgv(input) } diff --git a/src/provision.ts b/src/provision.ts index 660adf8..734052c 100644 --- a/src/provision.ts +++ b/src/provision.ts @@ -7,7 +7,6 @@ import * as cache from '@actions/cache' import * as toolCache from '@actions/tool-cache' import * as gradlew from './gradlew' -import * as github from './github-utils' const gradleVersionsBaseUrl = 'https://services.gradle.org/versions' @@ -185,7 +184,7 @@ async function httpGetString(url: string): Promise { } function isDistributionsCacheDisabled(): boolean { - return !github.inputBoolean('distributions-cache-enabled', true) + return !core.getBooleanInput('distributions-cache-enabled') } interface GradleVersionInfo {