mirror of
https://github.com/gradle/gradle-build-action
synced 2024-11-27 12:02:15 +00:00
Simplify setting caches to disabled or read-only
This commit is contained in:
parent
1c72a31463
commit
3390540145
6 changed files with 24 additions and 39 deletions
2
.github/workflows/failure-cases.yml
vendored
2
.github/workflows/failure-cases.yml
vendored
|
@ -34,4 +34,4 @@ jobs:
|
|||
with:
|
||||
build-root-directory: __tests__/samples/no-wrapper
|
||||
arguments: help
|
||||
gradle-cache-enabled: no
|
||||
cache-disabled: yes
|
||||
|
|
12
.github/workflows/integration-testing.yml
vendored
12
.github/workflows/integration-testing.yml
vendored
|
@ -51,21 +51,21 @@ jobs:
|
|||
gradle-version: 6.9
|
||||
build-root-directory: __tests__/samples/no-wrapper
|
||||
arguments: help -DgradleVersionCheck=6.9
|
||||
gradle-cache-enabled: read-only
|
||||
cache-read-only: true
|
||||
- name: Test use Gradle version alias
|
||||
uses: ./
|
||||
with:
|
||||
gradle-version: release-candidate
|
||||
build-root-directory: __tests__/samples/no-wrapper
|
||||
arguments: help -DgradleVersionCheck=7.2
|
||||
gradle-cache-enabled: read-only
|
||||
cache-read-only: true
|
||||
- name: Test use defined Gradle executable
|
||||
uses: ./
|
||||
with:
|
||||
gradle-executable: __tests__/samples/basic/gradlew${{ matrix.script-suffix }}
|
||||
build-root-directory: __tests__/samples/no-wrapper
|
||||
arguments: help -DgradleVersionCheck=7.1.1
|
||||
gradle-cache-enabled: read-only
|
||||
cache-read-only: true
|
||||
|
||||
# Test that the gradle-user-home cache will cache dependencies, by running build with --offline
|
||||
dependencies-cache:
|
||||
|
@ -82,7 +82,7 @@ jobs:
|
|||
with:
|
||||
build-root-directory: __tests__/samples/basic
|
||||
arguments: test --offline
|
||||
gradle-cache-enabled: read-only
|
||||
cache-read-only: true
|
||||
|
||||
# Test that the gradle-user-home cache will cache and restore local build-cache
|
||||
build-cache:
|
||||
|
@ -99,7 +99,7 @@ jobs:
|
|||
with:
|
||||
build-root-directory: __tests__/samples/basic
|
||||
arguments: test -DverifyCachedBuild=true
|
||||
gradle-cache-enabled: read-only
|
||||
cache-read-only: true
|
||||
|
||||
# Test that the project-dot-gradle cache will cache and restore configuration-cache
|
||||
configuration-cache:
|
||||
|
@ -118,4 +118,4 @@ jobs:
|
|||
with:
|
||||
build-root-directory: __tests__/samples/basic
|
||||
arguments: test --configuration-cache
|
||||
gradle-cache-enabled: read-only
|
||||
cache-read-only: true
|
||||
|
|
12
action.yml
12
action.yml
|
@ -16,14 +16,14 @@ inputs:
|
|||
arguments:
|
||||
description: Gradle command line arguments, see gradle --help
|
||||
required: false
|
||||
distributions-cache-enabled:
|
||||
description: Whether caching downloaded Gradle distributions is enabled or not. Valid values are 'true' (default), 'false', and 'read-only'.
|
||||
cache-disabled:
|
||||
description: When 'true', all caching is disabled. No entries will be written to or read from the cache.
|
||||
required: false
|
||||
default: true
|
||||
gradle-cache-enabled:
|
||||
description: Whether caching of Gradle User Home and project .gradle directory is enabled. Valid values are 'true' (default), 'false', and 'read-only'.
|
||||
default: false
|
||||
cache-read-only:
|
||||
description: When 'true', existing entries will be read from the cache but no entries will be written
|
||||
required: false
|
||||
default: true
|
||||
default: false
|
||||
workflow-job-context:
|
||||
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
|
||||
|
|
|
@ -3,27 +3,12 @@ import * as cache from '@actions/cache'
|
|||
import * as github from '@actions/github'
|
||||
import * as crypto from 'crypto'
|
||||
|
||||
export function isCacheReadEnabled(cacheName: string): boolean {
|
||||
const configValue = getCacheEnabledValue(cacheName)
|
||||
return configValue === 'true' || configValue === 'read-only'
|
||||
export function isCacheDisabled(): boolean {
|
||||
return core.getBooleanInput('cache-disabled')
|
||||
}
|
||||
|
||||
export function isCacheSaveEnabled(cacheName: string): boolean {
|
||||
const configValue = getCacheEnabledValue(cacheName)
|
||||
return configValue === 'true'
|
||||
}
|
||||
|
||||
function getCacheEnabledValue(cacheName: string): string {
|
||||
const configValue = core
|
||||
.getInput(`${cacheName}-cache-enabled`)
|
||||
.toLowerCase()
|
||||
|
||||
if (['true', 'false', 'read-only'].includes(configValue)) {
|
||||
return configValue
|
||||
}
|
||||
throw new Error(
|
||||
`Invalid cache-enabled parameter '${configValue}'. Valid values are ['true', 'false', 'read-only']`
|
||||
)
|
||||
export function isCacheReadOnly(): boolean {
|
||||
return core.getBooleanInput('cache-read-only')
|
||||
}
|
||||
|
||||
export function isCacheDebuggingEnabled(): boolean {
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
import {GradleUserHomeCache} from './cache-gradle-user-home'
|
||||
import {ProjectDotGradleCache} from './cache-project-dot-gradle'
|
||||
import * as core from '@actions/core'
|
||||
import {isCacheReadEnabled, isCacheSaveEnabled} from './cache-utils'
|
||||
import {isCacheDisabled, isCacheReadOnly} from './cache-utils'
|
||||
|
||||
const BUILD_ROOT_DIR = 'BUILD_ROOT_DIR'
|
||||
|
||||
export async function restore(buildRootDirectory: string): Promise<void> {
|
||||
if (!isCacheReadEnabled('gradle')) {
|
||||
if (isCacheDisabled()) {
|
||||
core.debug('Cache read disabled')
|
||||
return
|
||||
}
|
||||
|
@ -21,8 +21,8 @@ export async function restore(buildRootDirectory: string): Promise<void> {
|
|||
}
|
||||
|
||||
export async function save(): Promise<void> {
|
||||
if (!isCacheSaveEnabled('gradle')) {
|
||||
core.debug('Cache save disabled')
|
||||
if (isCacheReadOnly()) {
|
||||
core.debug('Cache is read-only: not saving cache entry')
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ import * as cache from '@actions/cache'
|
|||
import * as toolCache from '@actions/tool-cache'
|
||||
|
||||
import * as gradlew from './gradlew'
|
||||
import {isCacheReadEnabled, isCacheSaveEnabled} from './cache-utils'
|
||||
import {isCacheDisabled, isCacheReadOnly} from './cache-utils'
|
||||
|
||||
const gradleVersionsBaseUrl = 'https://services.gradle.org/versions'
|
||||
|
||||
|
@ -120,7 +120,7 @@ async function downloadAndCacheGradleDistribution(
|
|||
`gradle-installations/downloads/gradle-${versionInfo.version}-bin.zip`
|
||||
)
|
||||
|
||||
if (!isCacheReadEnabled('distributions')) {
|
||||
if (isCacheDisabled()) {
|
||||
await downloadGradleDistribution(versionInfo, downloadPath)
|
||||
return downloadPath
|
||||
}
|
||||
|
@ -138,7 +138,7 @@ async function downloadAndCacheGradleDistribution(
|
|||
)
|
||||
await downloadGradleDistribution(versionInfo, downloadPath)
|
||||
|
||||
if (isCacheSaveEnabled('distributions')) {
|
||||
if (!isCacheReadOnly()) {
|
||||
try {
|
||||
await cache.saveCache([downloadPath], cacheKey)
|
||||
} catch (error) {
|
||||
|
|
Loading…
Reference in a new issue