diff --git a/.github/workflows/integTest-caching-configuration-cache.yml b/.github/workflows/integTest-caching-configuration-cache.yml index 5d037b5..dde0db0 100644 --- a/.github/workflows/integTest-caching-configuration-cache.yml +++ b/.github/workflows/integTest-caching-configuration-cache.yml @@ -26,8 +26,13 @@ jobs: with: build-root-directory: __tests__/samples/groovy-dsl arguments: test --configuration-cache + - name: Second build with configuration-cache enabled + uses: ./ + with: + build-root-directory: __tests__/samples/kotlin-dsl + arguments: test --configuration-cache - # Test that the project-dot-gradle cache will cache and restore configuration-cache + # Test restore configuration-cache configuration-cache: needs: seed-build strategy: @@ -46,6 +51,25 @@ jobs: arguments: test --configuration-cache cache-read-only: true + # Test restore configuration-cache from second build invocation + configuration-cache-2: + 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 and verify cached configuration + uses: ./ + env: + VERIFY_CACHED_CONFIGURATION: true + with: + build-root-directory: __tests__/samples/kotlin-dsl + arguments: test --configuration-cache + cache-read-only: true + # Check that the build can run when no extracted cache entries are restored no-extracted-cache-entries-restored: needs: seed-build diff --git a/__tests__/samples/kotlin-dsl/build.gradle.kts b/__tests__/samples/kotlin-dsl/build.gradle.kts index b102d97..18b4420 100644 --- a/__tests__/samples/kotlin-dsl/build.gradle.kts +++ b/__tests__/samples/kotlin-dsl/build.gradle.kts @@ -16,3 +16,15 @@ dependencies { tasks.test { useJUnitPlatform() } + +tasks.named("test").configure { + // Use an environment variable to bypass config-cache checks + if (System.getenv("VERIFY_CACHED_CONFIGURATION") != null) { + throw RuntimeException("Configuration was not cached: unexpected configuration of test task") + } + doLast { + if (System.getProperties().containsKey("verifyCachedBuild")) { + throw RuntimeException("Build was not cached: unexpected execution of test task") + } + } +}