From 69aad1f173f1006bd8466aca82c3e3a322f50f00 Mon Sep 17 00:00:00 2001 From: Daz DeBoer Date: Tue, 7 Dec 2021 13:26:16 -0700 Subject: [PATCH] Test config-cache support for multiple builds in one job --- .../integTest-caching-configuration-cache.yml | 26 ++++++++++++++++++- __tests__/samples/kotlin-dsl/build.gradle.kts | 12 +++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) 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") + } + } +}