Skip to content

Commit

Permalink
Merge pull request #149 from gradle/write-from-default-branch
Browse files Browse the repository at this point in the history
Default to `cache-read-only` for non-default branches
  • Loading branch information
bigdaz committed Jun 4, 2022
2 parents fe92974 + 00cdd4d commit 14c898b
Show file tree
Hide file tree
Showing 12 changed files with 35 additions and 8 deletions.
1 change: 1 addition & 0 deletions .github/workflows/integ-test-action-inputs-caching.yml
Expand Up @@ -31,6 +31,7 @@ jobs:
- name: Setup Gradle
uses: ./
with:
cache-read-only: false # For testing, allow writing cache entries on non-default branches
# Add "enterprise" to main cache entry but omit "notifications"
gradle-home-cache-includes: |
caches
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/integ-test-execution-with-caching.yml
Expand Up @@ -31,6 +31,7 @@ jobs:
- name: Execute Gradle build
uses: ./
with:
cache-read-only: false # For testing, allow writing cache entries on non-default branches
build-root-directory: .github/workflow-samples/groovy-dsl
arguments: test

Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/integ-test-execution.yml
Expand Up @@ -36,6 +36,7 @@ jobs:
- name: Test use defined Gradle version
uses: ./
with:
cache-read-only: false # For testing, allow writing cache entries on non-default branches
gradle-version: 6.9
build-root-directory: .github/workflow-samples/no-wrapper
arguments: help -DgradleVersionCheck=6.9
Expand Down Expand Up @@ -72,6 +73,7 @@ jobs:
uses: ./
id: gradle
with:
cache-read-only: false # For testing, allow writing cache entries on non-default branches
gradle-version: ${{matrix.gradle}}
build-root-directory: .github/workflow-samples/no-wrapper${{ matrix.build-root-suffix }}
arguments: help -DgradleVersionCheck=${{matrix.gradle}}
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/integ-test-provision-gradle-versions.yml
Expand Up @@ -36,6 +36,7 @@ jobs:
- name: Setup Gradle with v6.9
uses: ./
with:
cache-read-only: false # For testing, allow writing cache entries on non-default branches
gradle-version: 6.9
- name: Test uses Gradle v6.9
working-directory: .github/workflow-samples/no-wrapper
Expand Down Expand Up @@ -74,6 +75,7 @@ jobs:
- name: Setup Gradle
uses: ./
with:
cache-read-only: false # For testing, allow writing cache entries on non-default branches
gradle-version: ${{ matrix.gradle }}
- name: Run Gradle build
id: gradle
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/integ-test-restore-configuration-cache.yml
Expand Up @@ -32,6 +32,8 @@ jobs:
uses: ./.github/actions/download-dist
- name: Setup Gradle
uses: ./
with:
cache-read-only: false # For testing, allow writing cache entries on non-default branches
- name: Groovy build with configuration-cache enabled
working-directory: .github/workflow-samples/groovy-dsl
run: ./gradlew test --configuration-cache
Expand Down Expand Up @@ -102,6 +104,8 @@ jobs:
uses: ./.github/actions/download-dist
- name: Setup Gradle
uses: ./
with:
cache-read-only: false # For testing, allow writing cache entries on non-default branches
- name: Execute 'help' with configuration-cache enabled
working-directory: .github/workflow-samples/kotlin-dsl
run: ./gradlew help --configuration-cache
Expand All @@ -121,6 +125,8 @@ jobs:
uses: ./.github/actions/download-dist
- name: Setup Gradle
uses: ./
with:
cache-read-only: false # For testing, allow writing cache entries on non-default branches
- name: Execute 'test' with configuration-cache enabled
working-directory: .github/workflow-samples/kotlin-dsl
run: ./gradlew test --configuration-cache
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/integ-test-restore-custom-gradle-home.yml
Expand Up @@ -30,6 +30,8 @@ jobs:
uses: ./.github/actions/download-dist
- name: Setup Gradle
uses: ./
with:
cache-read-only: false # For testing, allow writing cache entries on non-default branches
- name: Build using Gradle wrapper
working-directory: .github/workflow-samples/groovy-dsl
run: ./gradlew test --info
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/integ-test-restore-gradle-home.yml
Expand Up @@ -31,6 +31,8 @@ jobs:
uses: ./.github/actions/download-dist
- name: Setup Gradle
uses: ./
with:
cache-read-only: false # For testing, allow writing cache entries on non-default branches
- name: Build using Gradle wrapper
working-directory: .github/workflow-samples/groovy-dsl
run: ./gradlew test
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/integ-test-restore-java-toolchain.yml
Expand Up @@ -30,6 +30,8 @@ jobs:
uses: ./.github/actions/download-dist
- name: Setup Gradle
uses: ./
with:
cache-read-only: false # For testing, allow writing cache entries on non-default branches
- name: Build using Gradle wrapper
working-directory: .github/workflow-samples/java-toolchain
run: ./gradlew test --info
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/integ-test-sample-gradle-plugin.yml
Expand Up @@ -30,6 +30,8 @@ jobs:
uses: ./.github/actions/download-dist
- name: Setup Gradle
uses: ./
with:
cache-read-only: false # For testing, allow writing cache entries on non-default branches
- name: Build gradle-plugin project
working-directory: .github/workflow-samples/gradle-plugin
run: ./gradlew build
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/integ-test-sample-kotlin-dsl.yml
Expand Up @@ -30,6 +30,8 @@ jobs:
uses: ./.github/actions/download-dist
- name: Setup Gradle
uses: ./
with:
cache-read-only: false # For testing, allow writing cache entries on non-default branches
- name: Build kotlin-dsl project
working-directory: .github/workflow-samples/kotlin-dsl
run: ./gradlew build
Expand Down
19 changes: 12 additions & 7 deletions action.yml
Expand Up @@ -14,11 +14,20 @@ inputs:
default: false

cache-read-only:
description: When 'true', existing entries will be read from the cache but no entries will be written.
description: |
When 'true', existing entries will be read from the cache but no entries will be written.
By default this value is 'false' for workflows on the GitHub default branch and 'true' for workflows on other branches.
required: false
default: false
default: ${{ github.ref_name != github.event.repository.default_branch }}
# e.g. Use the following setting to only write cache entries from your 'main' branch
# cache-read-only: ${{ github.ref != 'refs/heads/main' }}
# cache-read-only: ${{ github.ref_name != 'main' }}

cache-write-only:
description: |
When 'true', entries will not be restored from the cache but will be saved at the end of the Job.
Setting this to 'true' implies cache-read-only will be 'false'.
required: false
default: false

gradle-home-cache-includes:
description: Paths within Gradle User Home to cache.
Expand Down Expand Up @@ -50,10 +59,6 @@ inputs:
# The following action properties allow fine-grained tweaking of the action caching behaviour.
# These properties are experimental and not (yet) designed for production use, and may change without notice in a subsequent release of `gradle-build-action`.
# Use at your own risk!
cache-write-only:
description: When 'true', entries will not be restored from the cache but will be saved at the end of the Job. This allows a 'clean' cache entry to be written.
required: false
default: false
gradle-home-cache-strict-match:
description: When 'true', the action will not attempt to restore the Gradle User Home entries from other Jobs.
required: false
Expand Down
2 changes: 1 addition & 1 deletion src/cache-utils.ts
Expand Up @@ -27,7 +27,7 @@ export function isCacheDisabled(): boolean {
}

export function isCacheReadOnly(): boolean {
return core.getBooleanInput(CACHE_READONLY_PARAMETER)
return !isCacheWriteOnly() && core.getBooleanInput(CACHE_READONLY_PARAMETER)
}

export function isCacheWriteOnly(): boolean {
Expand Down

0 comments on commit 14c898b

Please sign in to comment.