name: Test caching with a custom GRADLE_USER_HOME on: pull_request: types: [assigned, review_requested] push: workflow_dispatch: env: GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: ${{github.workflow}}#${{github.run_number}}- GRADLE_USER_HOME: ${{github.workspace}}/custom/gradle/home 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: Setup Gradle uses: ./ - name: Build using Gradle wrapper working-directory: __tests__/samples/groovy-dsl run: ./gradlew test --info # Test that the gradle-user-home cache will cache dependencies, by running build with --offline dependencies-cache: 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: cache-read-only: true - name: Execute Gradle build with --offline working-directory: __tests__/samples/groovy-dsl run: ./gradlew test --offline --info # Test that the gradle-user-home cache will cache and restore local build-cache build-cache: 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: cache-read-only: true - name: Execute Gradle build and verify tasks from cache working-directory: __tests__/samples/groovy-dsl run: ./gradlew test -DverifyCachedBuild=true --info