Make artifact bundle definitions an input parameter

This commit is contained in:
Daz DeBoer 2021-10-15 12:45:15 -06:00
parent 29b14c7fca
commit da64595ccc
No known key found for this signature in database
GPG key ID: DD6B9F0B06683D5D
2 changed files with 16 additions and 8 deletions

View file

@ -30,6 +30,16 @@ inputs:
description: Used to uniquely identify the current job invocation. Defaults to the matrix values for this job; this should not be overridden by users. description: Used to uniquely identify the current job invocation. Defaults to the matrix values for this job; this should not be overridden by users.
required: false required: false
default: ${{ toJSON(matrix) }} default: ${{ toJSON(matrix) }}
cache-artifact-bundles:
description: Names and patterns of artifact bundles to cache separately. For internal use only.
required: false
default: |
[
["generated-gradle-jars", "caches/*/generated-gradle-jars/*.jar"],
["wrapper-zips", "wrapper/dists/*/*/*.zip"],
["dependency-jars", "caches/modules-*/files-*/**/*.jar"],
["instrumented-jars", "caches/jars-*/*/*.jar"]
]
outputs: outputs:
build-scan-url: build-scan-url:

View file

@ -10,13 +10,6 @@ import {AbstractCache, hashFileNames, tryDelete} from './cache-utils'
// Which paths under Gradle User Home should be cached // Which paths under Gradle User Home should be cached
const CACHE_PATH = ['caches', 'notifications'] const CACHE_PATH = ['caches', 'notifications']
const CACHE_ARTIFACT_BUNDLES = [
['generated-gradle-jars', 'caches/*/generated-gradle-jars/*.jar'],
['wrapper-zips', 'wrapper/dists/*/*/*.zip'],
['dependency-jars', 'caches/modules-*/files-*/**/*.jar'],
['instrumented-jars', 'caches/jars-*/*/*.jar']
]
export class GradleUserHomeCache extends AbstractCache { export class GradleUserHomeCache extends AbstractCache {
private gradleUserHome: string private gradleUserHome: string
@ -171,8 +164,13 @@ export class GradleUserHomeCache extends AbstractCache {
} }
private getArtifactBundles(): Map<string, string> { private getArtifactBundles(): Map<string, string> {
const artifactBundleDefinition = core.getInput('cache-artifact-bundles')
this.debug(
`Using artifact bundle definition: ${artifactBundleDefinition}`
)
const artifactBundles = JSON.parse(artifactBundleDefinition)
return new Map( return new Map(
Array.from(CACHE_ARTIFACT_BUNDLES, ([key, value]) => [ Array.from(artifactBundles, ([key, value]) => [
key, key,
path.resolve(this.gradleUserHome, value) path.resolve(this.gradleUserHome, value)
]) ])