mirror of
https://github.com/gradle/gradle-build-action.git
synced 2024-11-22 00:01:05 -05:00
Use core functionality to access action inputs
- Specify default values in action.yaml definition where appropriate - Replace custom methods with core functions: - getInputBoolean() with core.getBooleanInput() - inputOrNull() with core.getInput() - inputArrayOrNull() with core.getMultilineInput() - Remove github-utils.js
This commit is contained in:
parent
b9684c0cf5
commit
02d4f46354
7 changed files with 26 additions and 54 deletions
|
@ -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:
|
||||
|
|
|
@ -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<void> {
|
|||
}
|
||||
|
||||
function isConfigurationCacheDisabled(): boolean {
|
||||
return !github.inputBoolean('configuration-cache-enabled', false)
|
||||
return !core.getBooleanInput('configuration-cache-enabled')
|
||||
}
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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'
|
||||
}
|
21
src/main.ts
21
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<string> {
|
||||
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)
|
||||
}
|
||||
|
|
|
@ -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<string> {
|
|||
}
|
||||
|
||||
function isDistributionsCacheDisabled(): boolean {
|
||||
return !github.inputBoolean('distributions-cache-enabled', true)
|
||||
return !core.getBooleanInput('distributions-cache-enabled')
|
||||
}
|
||||
|
||||
interface GradleVersionInfo {
|
||||
|
|
Loading…
Reference in a new issue