name: Test caching configuration on: pull_request: push: workflow_dispatch: env: GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: ${{github.workflow}}#${{github.run_number}}- GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true jobs: # Run initial Gradle builds to push initial cache entries # These builds should start fresh without cache hits, due to the seed injected into the cache key above. seed-build: strategy: matrix: os: [ubuntu-latest, windows-latest] runs-on: ${{ matrix.os }} steps: - name: Checkout sources uses: actions/checkout@v2 - name: Build using Gradle wrapper uses: ./ with: build-root-directory: __tests__/samples/groovy-dsl arguments: test # 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 gradle-home-cache-excludes: | caches/build-cache-1 gradle-home-cache-artifact-bundles: | [ ["generated-gradle-jars", "caches/*/generated-gradle-jars/*.jar"], ["dependencies", "caches/modules-*/files-*/*/*/*/*/"], ["instrumented-jars", "caches/jars-*/*/"], ["kotlin-dsl", "caches/*/kotlin-dsl/*/*/"] ] # 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: Execute Gradle build with --offline uses: ./ with: build-root-directory: __tests__/samples/groovy-dsl arguments: test --offline cache-read-only: true # Need the same configuration when restoring state from cache gradle-home-cache-includes: | caches notifications wrapper gradle-home-cache-excludes: | caches/build-cache-1 gradle-home-cache-artifact-bundles: | [ ["generated-gradle-jars", "caches/*/generated-gradle-jars/*.jar"], ["dependencies", "caches/modules-*/files-*/*/*/*/*/"], ["instrumented-jars", "caches/jars-*/*/"], ["kotlin-dsl", "caches/*/kotlin-dsl/*/*/"] ]