From d5cd9d86a105ddebf3f0920b5b05a3733f82e5c2 Mon Sep 17 00:00:00 2001 From: Daz DeBoer Date: Sun, 12 Sep 2021 10:52:53 -0600 Subject: [PATCH] Split the 'prod' workflow up into different isolated workflows This is required to ensure that cache entries are namespaced correctly for the integration tests. --- .github/workflows/failure-cases.yml | 37 ++++++++++++++ .../integration-testing-kotlin-dsl.yml | 37 ++++++++++++++ .../{prod.yml => integration-testing.yml} | 51 +------------------ 3 files changed, 76 insertions(+), 49 deletions(-) create mode 100644 .github/workflows/failure-cases.yml create mode 100644 .github/workflows/integration-testing-kotlin-dsl.yml rename .github/workflows/{prod.yml => integration-testing.yml} (71%) diff --git a/.github/workflows/failure-cases.yml b/.github/workflows/failure-cases.yml new file mode 100644 index 0000000..a3e0779 --- /dev/null +++ b/.github/workflows/failure-cases.yml @@ -0,0 +1,37 @@ + # Run builds under certain failure conditions to allow the output to be manually inspected. +# These build invocations are informational only, and are expected to fail +name: failure-cases + +on: + pull_request: + push: + workflow_dispatch: + +env: + CACHE_KEY_PREFIX: ${{github.workflow}}#${{github.run_number}}- + +jobs: + wrapper-missing: + runs-on: ubuntu-latest + steps: + - name: Checkout sources + uses: actions/checkout@v2 + - name: Test wrapper missing + uses: ./ + continue-on-error: true + with: + build-root-directory: __tests__/samples/no-wrapper + arguments: help + + bad-configuration: + runs-on: ubuntu-latest + steps: + - name: Checkout sources + uses: actions/checkout@v2 + - name: Test bad config value + uses: ./ + continue-on-error: true + with: + build-root-directory: __tests__/samples/no-wrapper + arguments: help + gradle-cache-enabled: no diff --git a/.github/workflows/integration-testing-kotlin-dsl.yml b/.github/workflows/integration-testing-kotlin-dsl.yml new file mode 100644 index 0000000..21492e2 --- /dev/null +++ b/.github/workflows/integration-testing-kotlin-dsl.yml @@ -0,0 +1,37 @@ + # Make sure the action works on a clean machine without building +name: integration-testing-kotlin-dsl + +on: + pull_request: + push: + workflow_dispatch: + +env: + CACHE_KEY_PREFIX: ${{github.workflow}}#${{github.run_number}}- + +jobs: + # Use kotlin-dsl project to verify caching of generated jars and compiled scripts + seed-build: + runs-on: ubuntu-latest + steps: + - name: Checkout sources + uses: actions/checkout@v2 + - name: Build kotlin-dsl project + uses: ./ + with: + build-root-directory: __tests__/samples/kotlin-dsl + arguments: test + + # Check that the build can run --offline + verify-build: + needs: seed-build + runs-on: ubuntu-latest + steps: + - name: Checkout sources + uses: actions/checkout@v2 + - name: Build kotlin-dsl project + uses: ./ + with: + build-root-directory: __tests__/samples/kotlin-dsl + arguments: test --offline + gradle-cache-enabled: read-only diff --git a/.github/workflows/prod.yml b/.github/workflows/integration-testing.yml similarity index 71% rename from .github/workflows/prod.yml rename to .github/workflows/integration-testing.yml index 13ea774..dfc2614 100644 --- a/.github/workflows/prod.yml +++ b/.github/workflows/integration-testing.yml @@ -1,5 +1,5 @@ - # Make sure the action works on a clean machine without building -name: prod + # Verify the functionality works as expected +name: integration-testing on: pull_request: @@ -119,50 +119,3 @@ jobs: build-root-directory: __tests__/samples/basic arguments: test --configuration-cache gradle-cache-enabled: read-only - - # Use kotlin-dsl project to verify caching of generated jars and compiled scripts - # At this stage there is no automated verification of this caching: eyeball the build scan to verify - seed-kotlin-dsl-build: - runs-on: ubuntu-latest - steps: - - name: Checkout sources - uses: actions/checkout@v2 - - name: Build kotlin-dsl project - uses: ./ - with: - build-root-directory: __tests__/samples/kotlin-dsl - arguments: test - - verify-kotlin-dsl-build: - needs: seed-kotlin-dsl-build - runs-on: ubuntu-latest - steps: - - name: Checkout sources - uses: actions/checkout@v2 - - name: Build kotlin-dsl project - uses: ./ - with: - build-root-directory: __tests__/samples/kotlin-dsl - arguments: test - gradle-cache-enabled: read-only - - # These build invocations are informational only, and are expected to fail - failures: - needs: seed-build - runs-on: ubuntu-latest - steps: - - name: Checkout sources - uses: actions/checkout@v2 - - name: Test wrapper missing - uses: ./ - continue-on-error: true - with: - build-root-directory: __tests__/samples/no-wrapper - arguments: help - - name: Test bad config value - uses: ./ - continue-on-error: true - with: - build-root-directory: __tests__/samples/no-wrapper - arguments: help - gradle-cache-enabled: no