2023-06-03 15:58:54 -06:00
import * as core from '@actions/core'
import { parseArgsStringToArgv } from 'string-argv'
export function isCacheDisabled ( ) : boolean {
return getBooleanInput ( 'cache-disabled' )
}
export function isCacheReadOnly ( ) : boolean {
return getBooleanInput ( 'cache-read-only' )
}
export function isCacheWriteOnly ( ) : boolean {
return getBooleanInput ( 'cache-write-only' )
}
2023-08-19 13:01:29 -06:00
export function isCacheOverwriteExisting ( ) : boolean {
return getBooleanInput ( 'cache-overwrite-existing' )
}
2023-06-03 15:58:54 -06:00
export function isCacheStrictMatch ( ) : boolean {
return getBooleanInput ( 'gradle-home-cache-strict-match' )
}
export function isCacheDebuggingEnabled ( ) : boolean {
return process . env [ 'GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED' ] ? true : false
}
export function isCacheCleanupEnabled ( ) : boolean {
return getBooleanInput ( 'gradle-home-cache-cleanup' )
}
2023-12-20 19:02:27 -07:00
export function getCacheEncryptionKey ( ) : string {
return core . getInput ( 'cache-encryption-key' )
}
2023-06-03 15:58:54 -06:00
export function getCacheIncludes ( ) : string [ ] {
return core . getMultilineInput ( 'gradle-home-cache-includes' )
}
export function getCacheExcludes ( ) : string [ ] {
return core . getMultilineInput ( 'gradle-home-cache-excludes' )
}
export function getBuildRootDirectory ( ) : string {
return core . getInput ( 'build-root-directory' )
}
export function getGradleVersion ( ) : string {
return core . getInput ( 'gradle-version' )
}
export function getGradleExecutable ( ) : string {
return core . getInput ( 'gradle-executable' )
}
export function getArguments ( ) : string [ ] {
const input = core . getInput ( 'arguments' )
return parseArgsStringToArgv ( input )
}
// Internal parameters
2023-07-01 19:00:28 -06:00
export function getJobMatrix ( ) : string {
2023-06-03 15:58:54 -06:00
return core . getInput ( 'workflow-job-context' )
}
export function getGithubToken ( ) : string {
return core . getInput ( 'github-token' , { required : true } )
}
export function isJobSummaryEnabled ( ) : boolean {
return getBooleanInput ( 'generate-job-summary' , true )
}
2023-07-01 19:00:28 -06:00
export function isDependencyGraphEnabled ( ) : boolean {
return getBooleanInput ( 'generate-dependency-graph' , true )
}
2023-07-05 12:33:47 -06:00
export function getDependencyGraphOption ( ) : DependencyGraphOption {
const val = core . getInput ( 'dependency-graph' )
switch ( val . toLowerCase ( ) . trim ( ) ) {
case 'disabled' :
return DependencyGraphOption . Disabled
case 'generate' :
return DependencyGraphOption . Generate
case 'generate-and-submit' :
return DependencyGraphOption . GenerateAndSubmit
case 'download-and-submit' :
return DependencyGraphOption . DownloadAndSubmit
}
throw TypeError (
` The value ' ${ val } is not valid for 'dependency-graph. Valid values are: [disabled, generate-and-upload, generate-and-submit, download-and-submit]. The default value is 'disabled'. `
)
}
2023-11-09 08:06:31 +01:00
export function getArtifactRetentionDays ( ) : number {
const val = core . getInput ( 'artifact-retention-days' )
return parseNumericInput ( 'artifact-retention-days' , val , 0 )
// Zero indicates that the default repository settings should be used
}
export function parseNumericInput ( paramName : string , paramValue : string , paramDefault : number ) : number {
if ( paramValue . length === 0 ) {
return paramDefault
}
const numericValue = parseInt ( paramValue )
if ( isNaN ( numericValue ) ) {
throw TypeError ( ` The value ' ${ paramValue } ' is not a valid numeric value for ' ${ paramName } '. ` )
}
return numericValue
}
2023-06-03 15:58:54 -06:00
function getBooleanInput ( paramName : string , paramDefault = false ) : boolean {
const paramValue = core . getInput ( paramName )
switch ( paramValue . toLowerCase ( ) . trim ( ) ) {
case '' :
return paramDefault
case 'false' :
return false
case 'true' :
return true
}
throw TypeError ( ` The value ' ${ paramValue } is not valid for ' ${ paramName } . Valid values are: [true, false] ` )
}
2023-07-05 12:33:47 -06:00
export enum DependencyGraphOption {
Disabled ,
Generate ,
GenerateAndSubmit ,
DownloadAndSubmit
}