Use multiline input parameters instead of JSON input

The `gradle-home-cache-includes` and `gradle-home-cache-excludes` parameters were initially implemented
as JSON string inputs. This makes these inputs non-idiomatic and easier to get wrong.

This change converts them to multi-line input parameters.

Fixes #106
This commit is contained in:
Daz DeBoer 2021-10-29 07:29:57 -06:00
parent d61e5be06a
commit e3ada7e5c2
No known key found for this signature in database
GPG key ID: DD6B9F0B06683D5D
4 changed files with 19 additions and 13 deletions

View file

@ -28,9 +28,11 @@ jobs:
# Add "wrapper" to main cache entry and remove 'wrapper-zips' bundle
# Exclude build-cache from main cache entry
gradle-home-cache-includes: |
["caches", "notifications", "wrapper"]
caches
notifications
wrapper
gradle-home-cache-excludes: |
["caches/build-cache-1"]
caches/build-cache-1
gradle-home-cache-artifact-bundles: |
[
["generated-gradle-jars", "caches/*/generated-gradle-jars/*.jar"],
@ -57,9 +59,11 @@ jobs:
cache-read-only: true
# Need the same configuration when restoring state from cache
gradle-home-cache-includes: |
["caches", "notifications", "wrapper"]
caches
notifications
wrapper
gradle-home-cache-excludes: |
["caches/build-cache-1"]
caches/build-cache-1
gradle-home-cache-artifact-bundles: |
[
["generated-gradle-jars", "caches/*/generated-gradle-jars/*.jar"],

View file

@ -191,10 +191,12 @@ The contents to be cached can be fine tuned by including and excluding certain p
```yaml
# Cache downloaded JDKs in addition to the default directories.
gradle-home-cache-includes: |
["caches", "notifications", "jdks"]
caches
notifications
jdks
# Exclude the local build-cache from the directories cached.
gradle-home-cache-excludes: |
["caches/build-cache-1"]
caches/build-cache-1
```
You can specify any number of fixed paths or patterns to include or exclude.

View file

@ -36,13 +36,13 @@ inputs:
description: Paths within Gradle User Home to cache.
required: false
default: |
["caches", "notifications"]
caches
notifications
gradle-home-cache-excludes:
description: Paths within Gradle User Home to exclude from cache.
required: false
default: |
[]
# e.g. Use the following setting to prevent the local build cache from being saved/restored
# gradle-home-cache-excludes: |
# ["caches/build-cache-1"]

View file

@ -84,8 +84,8 @@ export class GradleUserHomeCache extends AbstractCache {
}
private removeExcludedPaths(): void {
const rawPaths: string[] = JSON.parse(
core.getInput(EXCLUDE_PATHS_PARAMETER)
const rawPaths: string[] = core.getMultilineInput(
EXCLUDE_PATHS_PARAMETER
)
const resolvedPaths = rawPaths.map(x =>
path.resolve(this.gradleUserHome, x)
@ -193,8 +193,8 @@ export class GradleUserHomeCache extends AbstractCache {
}
protected getCachePath(): string[] {
const rawPaths: string[] = JSON.parse(
core.getInput(INCLUDE_PATHS_PARAMETER)
const rawPaths: string[] = core.getMultilineInput(
INCLUDE_PATHS_PARAMETER
)
rawPaths.push(META_FILE_DIR)
const resolvedPaths = rawPaths.map(x => this.resolveCachePath(x))