From da64595ccc521001372c6ba834c4bf29a0491c35 Mon Sep 17 00:00:00 2001 From: Daz DeBoer Date: Fri, 15 Oct 2021 12:45:15 -0600 Subject: [PATCH] Make artifact bundle definitions an input parameter --- action.yml | 10 ++++++++++ src/cache-gradle-user-home.ts | 14 ++++++-------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/action.yml b/action.yml index 71485ce..54fc22e 100644 --- a/action.yml +++ b/action.yml @@ -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. required: false 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: build-scan-url: diff --git a/src/cache-gradle-user-home.ts b/src/cache-gradle-user-home.ts index 35a2834..f4605d1 100644 --- a/src/cache-gradle-user-home.ts +++ b/src/cache-gradle-user-home.ts @@ -10,13 +10,6 @@ import {AbstractCache, hashFileNames, tryDelete} from './cache-utils' // Which paths under Gradle User Home should be cached 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 { private gradleUserHome: string @@ -171,8 +164,13 @@ export class GradleUserHomeCache extends AbstractCache { } private getArtifactBundles(): Map { + const artifactBundleDefinition = core.getInput('cache-artifact-bundles') + this.debug( + `Using artifact bundle definition: ${artifactBundleDefinition}` + ) + const artifactBundles = JSON.parse(artifactBundleDefinition) return new Map( - Array.from(CACHE_ARTIFACT_BUNDLES, ([key, value]) => [ + Array.from(artifactBundles, ([key, value]) => [ key, path.resolve(this.gradleUserHome, value) ])