mirror of
https://github.com/gradle/gradle-build-action.git
synced 2024-12-26 02:26:19 +08:00
08d5b40ca5
There may be cases where it a "fresh" cache entry would be beneficial, for example if the Gradle User Home cache entry grows over time. This setting would run the build as if no prior cache entry exists.
143 lines
4.3 KiB
YAML
143 lines
4.3 KiB
YAML
name: Test caching configuration
|
|
|
|
on:
|
|
pull_request:
|
|
types: [assigned, review_requested]
|
|
push:
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: ${{github.workflow}}#${{github.run_number}}:${{github.run_attempt}}-
|
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
|
|
|
jobs:
|
|
seed-build:
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, windows-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- name: Setup Gradle
|
|
uses: ./
|
|
with:
|
|
# Add "enterprise" to main cache entry but omit "notifications"
|
|
gradle-home-cache-includes: |
|
|
caches
|
|
enterprise
|
|
# Exclude build-cache from main cache entry
|
|
gradle-home-cache-excludes: |
|
|
caches/build-cache-1
|
|
- name: Build using Gradle wrapper
|
|
working-directory: __tests__/samples/groovy-dsl
|
|
run: ./gradlew test
|
|
|
|
# Test that the gradle-user-home cache will cache dependencies, by running build with --offline
|
|
verify-build:
|
|
needs: seed-build
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, windows-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- name: Setup Gradle
|
|
uses: ./
|
|
with:
|
|
# Use the same configuration as used in the seed build
|
|
gradle-home-cache-includes: |
|
|
caches
|
|
enterprise
|
|
gradle-home-cache-excludes: |
|
|
caches/build-cache-1
|
|
cache-read-only: true
|
|
- name: Execute Gradle build with --offline
|
|
working-directory: __tests__/samples/groovy-dsl
|
|
run: ./gradlew test --offline
|
|
|
|
# Test that build scans are captured when caching is explicitly disabled
|
|
cache-disabled:
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, windows-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- name: Setup Gradle
|
|
uses: ./
|
|
with:
|
|
cache-disabled: true
|
|
- name: Run Gradle build
|
|
id: gradle
|
|
working-directory: __tests__/samples/no-wrapper${{ matrix.build-root-suffix }}
|
|
run: gradle help "-DgradleVersionCheck=${{matrix.gradle}}"
|
|
- name: Check build scan url is captured
|
|
if: ${{ !steps.gradle.outputs.build-scan-url }}
|
|
uses: actions/github-script@v3
|
|
with:
|
|
script: |
|
|
core.setFailed('No build scan detected')
|
|
|
|
# Test that build scans are captured when caching is disabled because Gradle User Home already exists
|
|
cache-disabled-pre-existing-gradle-home:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- name: Create dummy Gradle User Home
|
|
run: mkdir -p ~/.gradle/caches
|
|
- name: Setup Gradle
|
|
uses: ./
|
|
- name: Run Gradle build
|
|
id: gradle
|
|
working-directory: __tests__/samples/no-wrapper${{ matrix.build-root-suffix }}
|
|
run: gradle help "-DgradleVersionCheck=${{matrix.gradle}}"
|
|
- name: Check build scan url is captured
|
|
if: ${{ !steps.gradle.outputs.build-scan-url }}
|
|
uses: actions/github-script@v3
|
|
with:
|
|
script: |
|
|
core.setFailed('No build scan detected')
|
|
|
|
# Test seed the cache with cache-write-only and verify with cache-read-only
|
|
seed-build-write-only:
|
|
env:
|
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: ${{github.workflow}}#${{github.run_number}}:${{github.run_attempt}}-write-only-
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, windows-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- name: Setup Gradle
|
|
uses: ./
|
|
with:
|
|
cache-write-only: true
|
|
- name: Build using Gradle wrapper
|
|
working-directory: __tests__/samples/groovy-dsl
|
|
run: ./gradlew test
|
|
|
|
verify-write-only-build:
|
|
env:
|
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: ${{github.workflow}}#${{github.run_number}}:${{github.run_attempt}}-write-only-
|
|
needs: seed-build-write-only
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, windows-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- name: Setup Gradle
|
|
uses: ./
|
|
with:
|
|
cache-read-only: true
|
|
- name: Execute Gradle build with --offline
|
|
working-directory: __tests__/samples/groovy-dsl
|
|
run: ./gradlew test --offline
|
|
|