From a3f366ddb72212205b797da9ca3a5e813266be10 Mon Sep 17 00:00:00 2001 From: daz Date: Sat, 6 Apr 2024 12:52:36 -0600 Subject: [PATCH 1/3] Replace 'download-dist' action with 'init-integ-test' This action takes care of 'setup-java' as well as downloading the dist if required. --- .github/actions/download-dist/action.yml | 12 -------- .github/actions/init-integ-test/action.yml | 19 ++++++++++++ .github/dependabot.yml | 2 +- .../workflows/dependency-submission-save.yml | 3 ++ .../dependency-submission-submit.yml | 3 ++ .github/workflows/dependency-submission.yml | 9 ++++++ .../workflows/integ-test-action-inputs.yml | 5 ++-- .../workflows/integ-test-cache-cleanup.yml | 15 ++++++---- .../workflows/integ-test-caching-config.yml | 30 +++++++++++-------- .../integ-test-dependency-graph-failures.yml | 25 +++++++++------- .../workflows/integ-test-dependency-graph.yml | 25 +++++++++------- .../integ-test-detect-java-toolchains.yml | 10 ++++--- .../integ-test-execution-with-caching.yml | 10 ++++--- .github/workflows/integ-test-execution.yml | 10 ++++--- .../integ-test-inject-develocity.yml | 10 ++++--- .../integ-test-provision-gradle-versions.yml | 10 ++++--- ...integ-test-restore-configuration-cache.yml | 30 +++++++++++-------- ...test-restore-containerized-gradle-home.yml | 20 ++++--------- .../integ-test-restore-custom-gradle-home.yml | 27 +++++++++-------- .../integ-test-restore-gradle-home.yml | 25 +++++++++------- .../integ-test-restore-java-toolchain.yml | 10 ++++--- .../integ-test-sample-gradle-plugin.yml | 10 ++++--- .../integ-test-sample-kotlin-dsl.yml | 10 ++++--- 23 files changed, 197 insertions(+), 133 deletions(-) delete mode 100644 .github/actions/download-dist/action.yml create mode 100644 .github/actions/init-integ-test/action.yml diff --git a/.github/actions/download-dist/action.yml b/.github/actions/download-dist/action.yml deleted file mode 100644 index fa52ec5..0000000 --- a/.github/actions/download-dist/action.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: 'Download dist' -# Downloads a 'dist' directory artifact that was uploaded in an earlier step -# We control this with an environment variable to allow for easier global configuration. -runs: - using: "composite" - steps: - - name: Download dist - if: ${{ env.DOWNLOAD_DIST == 'true' }} - uses: actions/download-artifact@v4 - with: - name: dist - path: dist/ diff --git a/.github/actions/init-integ-test/action.yml b/.github/actions/init-integ-test/action.yml new file mode 100644 index 0000000..8cf3f0c --- /dev/null +++ b/.github/actions/init-integ-test/action.yml @@ -0,0 +1,19 @@ +name: 'Initialize integ-test' + +runs: + using: "composite" + steps: + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: 11 + + # Downloads a 'dist' directory artifact that was uploaded in an earlier step + # We control this with an environment variable to allow for easier global configuration. + - name: Download dist + if: ${{ env.DOWNLOAD_DIST == 'true' }} + uses: actions/download-artifact@v4 + with: + name: dist + path: dist/ diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c3bd885..c58c1c2 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -34,7 +34,7 @@ updates: patterns: - "*" - package-ecosystem: "github-actions" - directory: "/.github/actions/download-dist" + directory: "/.github/actions/init-integ-test" schedule: interval: "weekly" groups: diff --git a/.github/workflows/dependency-submission-save.yml b/.github/workflows/dependency-submission-save.yml index c9b1981..8d70dfa 100644 --- a/.github/workflows/dependency-submission-save.yml +++ b/.github/workflows/dependency-submission-save.yml @@ -13,6 +13,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Generate and save dependency graph uses: ./dependency-submission with: diff --git a/.github/workflows/dependency-submission-submit.yml b/.github/workflows/dependency-submission-submit.yml index 67595fa..021404e 100644 --- a/.github/workflows/dependency-submission-submit.yml +++ b/.github/workflows/dependency-submission-submit.yml @@ -14,6 +14,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Download and submit dependency graph uses: ./dependency-submission with: diff --git a/.github/workflows/dependency-submission.yml b/.github/workflows/dependency-submission.yml index e85c158..c099ef9 100644 --- a/.github/workflows/dependency-submission.yml +++ b/.github/workflows/dependency-submission.yml @@ -13,6 +13,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Generate and submit dependencies uses: ./dependency-submission with: @@ -33,6 +36,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Generate and submit dependencies uses: ./dependency-submission with: @@ -46,6 +52,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle - name: Generate and submit dependencies diff --git a/.github/workflows/integ-test-action-inputs.yml b/.github/workflows/integ-test-action-inputs.yml index eeb9788..f5201f6 100644 --- a/.github/workflows/integ-test-action-inputs.yml +++ b/.github/workflows/integ-test-action-inputs.yml @@ -25,8 +25,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Invoke with multi-line arguments uses: ./setup-gradle with: diff --git a/.github/workflows/integ-test-cache-cleanup.yml b/.github/workflows/integ-test-cache-cleanup.yml index 5e63c4e..f257088 100644 --- a/.github/workflows/integ-test-cache-cleanup.yml +++ b/.github/workflows/integ-test-cache-cleanup.yml @@ -25,8 +25,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: @@ -45,8 +46,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: @@ -65,8 +67,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: diff --git a/.github/workflows/integ-test-caching-config.yml b/.github/workflows/integ-test-caching-config.yml index 723b4ba..ed53c0f 100644 --- a/.github/workflows/integ-test-caching-config.yml +++ b/.github/workflows/integ-test-caching-config.yml @@ -25,8 +25,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: @@ -53,8 +54,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: @@ -79,8 +81,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: @@ -102,8 +105,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Create dummy Gradle User Home run: mkdir -p ~/.gradle/caches - name: Setup Gradle @@ -130,8 +134,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: @@ -151,8 +156,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: diff --git a/.github/workflows/integ-test-dependency-graph-failures.yml b/.github/workflows/integ-test-dependency-graph-failures.yml index 1c346ef..988e690 100644 --- a/.github/workflows/integ-test-dependency-graph-failures.yml +++ b/.github/workflows/integ-test-dependency-graph-failures.yml @@ -22,8 +22,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle for dependency-graph generate uses: ./setup-gradle with: @@ -48,8 +49,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle for dependency-graph generate uses: ./setup-gradle with: @@ -72,8 +74,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle for dependency-graph generate uses: ./setup-gradle with: @@ -95,8 +98,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle for dependency-graph generate uses: ./setup-gradle with: @@ -115,8 +119,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle for dependency-graph generate uses: ./setup-gradle with: diff --git a/.github/workflows/integ-test-dependency-graph.yml b/.github/workflows/integ-test-dependency-graph.yml index 3309b2c..76ddd18 100644 --- a/.github/workflows/integ-test-dependency-graph.yml +++ b/.github/workflows/integ-test-dependency-graph.yml @@ -28,8 +28,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle for dependency-graph generate uses: ./setup-gradle with: @@ -46,8 +47,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle for dependency-graph generate uses: ./setup-gradle with: @@ -62,8 +64,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Submit dependency graphs uses: ./setup-gradle with: @@ -77,8 +80,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle for dependency-graph generate uses: ./setup-gradle with: @@ -117,8 +121,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle for dependency-graph generate uses: ./setup-gradle with: diff --git a/.github/workflows/integ-test-detect-java-toolchains.yml b/.github/workflows/integ-test-detect-java-toolchains.yml index c8f214e..1242b54 100644 --- a/.github/workflows/integ-test-detect-java-toolchains.yml +++ b/.github/workflows/integ-test-detect-java-toolchains.yml @@ -27,8 +27,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle - name: List detected toolchains @@ -56,8 +57,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Java 20 uses: actions/setup-java@v4 with: diff --git a/.github/workflows/integ-test-execution-with-caching.yml b/.github/workflows/integ-test-execution-with-caching.yml index 3754fc7..ec7b0d3 100644 --- a/.github/workflows/integ-test-execution-with-caching.yml +++ b/.github/workflows/integ-test-execution-with-caching.yml @@ -26,8 +26,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Execute Gradle build uses: ./setup-gradle with: @@ -45,8 +46,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Execute Gradle build uses: ./setup-gradle with: diff --git a/.github/workflows/integ-test-execution.yml b/.github/workflows/integ-test-execution.yml index 54af3c2..28216d9 100644 --- a/.github/workflows/integ-test-execution.yml +++ b/.github/workflows/integ-test-execution.yml @@ -30,8 +30,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Test use defined Gradle version uses: ./setup-gradle with: @@ -68,8 +69,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Java uses: actions/setup-java@v4 with: diff --git a/.github/workflows/integ-test-inject-develocity.yml b/.github/workflows/integ-test-inject-develocity.yml index 791a04b..577def1 100644 --- a/.github/workflows/integ-test-inject-develocity.yml +++ b/.github/workflows/integ-test-inject-develocity.yml @@ -37,8 +37,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Java uses: actions/setup-java@v4 with: @@ -69,8 +70,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Java uses: actions/setup-java@v4 with: diff --git a/.github/workflows/integ-test-provision-gradle-versions.yml b/.github/workflows/integ-test-provision-gradle-versions.yml index 6b9d8dd..99abe94 100644 --- a/.github/workflows/integ-test-provision-gradle-versions.yml +++ b/.github/workflows/integ-test-provision-gradle-versions.yml @@ -31,8 +31,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle with v6.9 uses: ./setup-gradle with: @@ -83,8 +84,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Java uses: actions/setup-java@v4 with: diff --git a/.github/workflows/integ-test-restore-configuration-cache.yml b/.github/workflows/integ-test-restore-configuration-cache.yml index d75bd76..355dc24 100644 --- a/.github/workflows/integ-test-restore-configuration-cache.yml +++ b/.github/workflows/integ-test-restore-configuration-cache.yml @@ -30,8 +30,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Java to ensure consistency uses: actions/setup-java@v4 with: @@ -58,8 +59,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Java to ensure consistency uses: actions/setup-java@v4 with: @@ -96,8 +98,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Java to ensure consistency uses: actions/setup-java@v4 with: @@ -125,8 +128,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Java to ensure consistency uses: actions/setup-java@v4 with: @@ -153,8 +157,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Java to ensure consistency uses: actions/setup-java@v4 with: @@ -182,8 +187,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Java to ensure consistency uses: actions/setup-java@v4 with: diff --git a/.github/workflows/integ-test-restore-containerized-gradle-home.yml b/.github/workflows/integ-test-restore-containerized-gradle-home.yml index ddc28a9..4a177ec 100644 --- a/.github/workflows/integ-test-restore-containerized-gradle-home.yml +++ b/.github/workflows/integ-test-restore-containerized-gradle-home.yml @@ -20,13 +20,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist - - name: Setup Java - uses: actions/setup-java@v4 - with: - java-version: 11 - distribution: temurin + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: @@ -43,13 +39,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist - - name: Setup Java - uses: actions/setup-java@v4 - with: - java-version: 11 - distribution: temurin + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: diff --git a/.github/workflows/integ-test-restore-custom-gradle-home.yml b/.github/workflows/integ-test-restore-custom-gradle-home.yml index c5d4768..3ebe4ee 100644 --- a/.github/workflows/integ-test-restore-custom-gradle-home.yml +++ b/.github/workflows/integ-test-restore-custom-gradle-home.yml @@ -17,14 +17,15 @@ jobs: seed-build: runs-on: ubuntu-latest steps: + - name: Checkout sources + uses: actions/checkout@v4 + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Set Gradle User Home run: | mkdir -p $GITHUB_WORKSPACE/gradle-user-home echo "GRADLE_USER_HOME=$GITHUB_WORKSPACE/gradle-user-home" >> $GITHUB_ENV - - name: Checkout sources - uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist - name: Setup Gradle uses: ./setup-gradle with: @@ -38,14 +39,15 @@ jobs: needs: seed-build runs-on: ubuntu-latest steps: + - name: Checkout sources + uses: actions/checkout@v4 + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Set Gradle User Home run: | mkdir -p $GITHUB_WORKSPACE/gradle-user-home echo "GRADLE_USER_HOME=$GITHUB_WORKSPACE/gradle-user-home" >> $GITHUB_ENV - - name: Checkout sources - uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist - name: Setup Gradle uses: ./setup-gradle with: @@ -59,14 +61,15 @@ jobs: needs: seed-build runs-on: ubuntu-latest steps: + - name: Checkout sources + uses: actions/checkout@v4 + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Set Gradle User Home run: | mkdir -p $GITHUB_WORKSPACE/gradle-user-home echo "GRADLE_USER_HOME=$GITHUB_WORKSPACE/gradle-user-home" >> $GITHUB_ENV - - name: Checkout sources - uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist - name: Setup Gradle uses: ./setup-gradle with: diff --git a/.github/workflows/integ-test-restore-gradle-home.yml b/.github/workflows/integ-test-restore-gradle-home.yml index de543b0..a4223e6 100644 --- a/.github/workflows/integ-test-restore-gradle-home.yml +++ b/.github/workflows/integ-test-restore-gradle-home.yml @@ -26,8 +26,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: @@ -46,8 +47,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: @@ -66,8 +68,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: @@ -86,8 +89,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle with no extracted cache entries restored uses: ./setup-gradle env: @@ -108,8 +112,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Pre-create Gradle User Home shell: bash run: | diff --git a/.github/workflows/integ-test-restore-java-toolchain.yml b/.github/workflows/integ-test-restore-java-toolchain.yml index 0c42f63..b7acaed 100644 --- a/.github/workflows/integ-test-restore-java-toolchain.yml +++ b/.github/workflows/integ-test-restore-java-toolchain.yml @@ -25,8 +25,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: @@ -45,8 +46,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: diff --git a/.github/workflows/integ-test-sample-gradle-plugin.yml b/.github/workflows/integ-test-sample-gradle-plugin.yml index 462aa34..b6235c2 100644 --- a/.github/workflows/integ-test-sample-gradle-plugin.yml +++ b/.github/workflows/integ-test-sample-gradle-plugin.yml @@ -25,8 +25,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: @@ -44,8 +45,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: diff --git a/.github/workflows/integ-test-sample-kotlin-dsl.yml b/.github/workflows/integ-test-sample-kotlin-dsl.yml index 05fb318..e93d460 100644 --- a/.github/workflows/integ-test-sample-kotlin-dsl.yml +++ b/.github/workflows/integ-test-sample-kotlin-dsl.yml @@ -25,8 +25,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: @@ -44,8 +45,9 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Download distribution if required - uses: ./.github/actions/download-dist + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + - name: Setup Gradle uses: ./setup-gradle with: From 1390ca645401b78672329bfa72ed1907faeee1b9 Mon Sep 17 00:00:00 2001 From: daz Date: Sat, 6 Apr 2024 13:50:39 -0600 Subject: [PATCH 2/3] Don't rely on preinstalled gradle for test --- .github/workflows/integ-test-caching-config.yml | 12 ++++++------ .../workflows/integ-test-detect-java-toolchains.yml | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/integ-test-caching-config.yml b/.github/workflows/integ-test-caching-config.yml index ed53c0f..7486d17 100644 --- a/.github/workflows/integ-test-caching-config.yml +++ b/.github/workflows/integ-test-caching-config.yml @@ -88,10 +88,10 @@ jobs: uses: ./setup-gradle with: cache-disabled: true - - name: Run Gradle build + - name: Build using Gradle wrapper id: gradle - working-directory: .github/workflow-samples/no-wrapper${{ matrix.build-root-suffix }} - run: gradle help "-DgradleVersionCheck=${{matrix.gradle}}" + working-directory: .github/workflow-samples/groovy-dsl + run: ./gradlew help - name: Check Build Scan url is captured if: ${{ !steps.gradle.outputs.build-scan-url }} uses: actions/github-script@v7 @@ -112,10 +112,10 @@ jobs: run: mkdir -p ~/.gradle/caches - name: Setup Gradle uses: ./setup-gradle - - name: Run Gradle build + - name: Build using Gradle wrapper id: gradle - working-directory: .github/workflow-samples/no-wrapper${{ matrix.build-root-suffix }} - run: gradle help "-DgradleVersionCheck=${{matrix.gradle}}" + working-directory: .github/workflow-samples/groovy-dsl + run: ./gradlew help - name: Check Build Scan url is captured if: ${{ !steps.gradle.outputs.build-scan-url }} uses: actions/github-script@v7 diff --git a/.github/workflows/integ-test-detect-java-toolchains.yml b/.github/workflows/integ-test-detect-java-toolchains.yml index 1242b54..d08ba8b 100644 --- a/.github/workflows/integ-test-detect-java-toolchains.yml +++ b/.github/workflows/integ-test-detect-java-toolchains.yml @@ -36,7 +36,7 @@ jobs: shell: bash working-directory: .github/workflow-samples/groovy-dsl run: | - gradle --info javaToolchains > output.txt + ./gradlew --info javaToolchains > output.txt cat output.txt - name: Verify detected toolchains shell: bash @@ -76,7 +76,7 @@ jobs: shell: bash working-directory: .github/workflow-samples/groovy-dsl run: | - gradle --info javaToolchains > output.txt + ./gradlew --info javaToolchains > output.txt cat output.txt - name: Verify setup JDKs are detected shell: bash From 4057bfe59dbfc177141f448eb3dfc4766df02071 Mon Sep 17 00:00:00 2001 From: daz Date: Sat, 6 Apr 2024 14:47:15 -0600 Subject: [PATCH 3/3] Add notes on testing with act --- CONTRIBUTING.md | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3da3413..cb07859 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,4 @@ -### How to merge a Dependabot PR +## How to merge a Dependabot PR The "distribution" for a GitHub Action is checked into the repository itself. In the case of these actions, the transpiled sources are committed to the `dist` directory. @@ -12,3 +12,27 @@ The simplest process to follow is: 3. In the `sources` directory, run `npm run build` to regenerate the distribution 4. Push the changes to the dependabot branch 5. If/when the checks pass, you can merge the dependabot PR + +## Using `act` to run integ-test workflows locally + +It's possible to run GitHub Actions workflows locally with https://nektosact.com/. +Many of the test workflows from this repository can be run in this way, making it easier to +test local changes without pushing to a branch. + +This feature is most useful to run a single `integ-test-*` workflow. Avoid running `ci-quick-test` or other aggregating workflows unless you want to use your local machine as a heater! + +Example running a single workflow: +`act -W .github/workflows/integ-test-caching-config.yml` + +Example running a single job: +`act -W .github/workflows/integ-test-caching-config.yml -j cache-disabled-pre-existing-gradle-home` + +Known issues: +- `integ-test-cache-cleanup.yml` fails because `gradle` is not installed on the runner. Should be fixed by #33. +- `integ-test-detect-java-toolchains.yml` fails when running on a `linux/amd64` container, since the expected pre-installed JDKs are not present. Should be fixed by #89. + +Tips: +- Add the following lines to `~/.actrc`: + - `--container-daemon-socket -` : Prevents "error while creating mount source path", and yes that's a solitary dash at the end + - `--matrix os:ubuntu-latest` : Avoids a lot of logging about unsupported runners being skipped +- Runners don't have `java` installed by default, so all workflows that run Gradle require a `setup-java` step. \ No newline at end of file