From df33bf27bdf90602675c2fade7f955088c04c1ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 9 Aug 2024 16:13:14 +0200 Subject: [PATCH] Sync GHA setup --- .../actions/await-http-resource/action.yml | 20 +++++++++++++++++++ .github/actions/build/action.yml | 8 ++++---- .../actions/create-github-release/action.yml | 4 ++-- .../actions/prepare-gradle-build/action.yml | 12 +++++------ .../actions/sync-to-maven-central/action.yml | 15 ++++---------- .../workflows/build-and-deploy-snapshot.yml | 1 + .github/workflows/ci.yml | 3 ++- .github/workflows/release.yml | 2 +- .github/workflows/validate-gradle-wrapper.yml | 2 +- 9 files changed, 41 insertions(+), 26 deletions(-) create mode 100644 .github/actions/await-http-resource/action.yml diff --git a/.github/actions/await-http-resource/action.yml b/.github/actions/await-http-resource/action.yml new file mode 100644 index 000000000000..7d2b3462b537 --- /dev/null +++ b/.github/actions/await-http-resource/action.yml @@ -0,0 +1,20 @@ +name: Await HTTP Resource +description: Waits for an HTTP resource to be available (a HEAD request succeeds) +inputs: + url: + description: 'The URL of the resource to await' + required: true +runs: + using: composite + steps: + - name: Await HTTP resource + shell: bash + run: | + url=${{ inputs.url }} + echo "Waiting for $url" + until curl --fail --head --silent ${{ inputs.url }} > /dev/null + do + echo "." + sleep 60 + done + echo "$url is available" diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index 5f5ee7a66812..87fbbe8ddac3 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -5,10 +5,10 @@ inputs: required: false default: '8' description: 'The Java version to compile and test with' - java-distribution: + java-early-access: required: false - default: 'liberica' - description: 'The Java distribution to use for the build' + default: 'false' + description: 'Whether the Java version is in early access' java-toolchain: required: false default: 'false' @@ -35,7 +35,7 @@ runs: with: develocity-access-key: ${{ inputs.develocity-access-key }} java-version: ${{ inputs.java-version }} - java-distribution: ${{ inputs.java-distribution }} + java-early-access: ${{ inputs.java-early-access }} java-toolchain: ${{ inputs.java-toolchain }} - name: Build id: build diff --git a/.github/actions/create-github-release/action.yml b/.github/actions/create-github-release/action.yml index 0354737e5dfb..e0120764f1e4 100644 --- a/.github/actions/create-github-release/action.yml +++ b/.github/actions/create-github-release/action.yml @@ -2,10 +2,10 @@ name: Create GitHub Release description: Create the release on GitHub with a changelog inputs: milestone: - description: 'Name of the GitHub milestone for which a release will be created' + description: Name of the GitHub milestone for which a release will be created required: true token: - description: 'Token to use for authentication with GitHub' + description: Token to use for authentication with GitHub required: true runs: using: composite diff --git a/.github/actions/prepare-gradle-build/action.yml b/.github/actions/prepare-gradle-build/action.yml index 0f30c8c0c5b8..ca8ef69b790c 100644 --- a/.github/actions/prepare-gradle-build/action.yml +++ b/.github/actions/prepare-gradle-build/action.yml @@ -5,10 +5,10 @@ inputs: required: false default: '8' description: 'The Java version to use for the build' - java-distribution: + java-early-access: required: false - default: 'liberica' - description: 'The Java distribution to use for the build' + default: 'false' + description: 'Whether the Java version is in early access' java-toolchain: required: false default: 'false' @@ -22,12 +22,12 @@ runs: - name: Set Up Java uses: actions/setup-java@v4 with: - distribution: ${{ inputs.java-distribution }} + distribution: ${{ inputs.java-early-access == 'true' && 'temurin' || 'liberica' }} java-version: | - ${{ inputs.java-version }} + ${{ inputs.java-early-access == 'true' && format('{0}-ea', inputs.java-version) || inputs.java-version }} ${{ inputs.java-toolchain == 'true' && '8' || '' }} - name: Set Up Gradle - uses: gradle/actions/setup-gradle@dbbdc275be76ac10734476cc723d82dfe7ec6eda # v3.4.2 + uses: gradle/actions/setup-gradle@d9c87d481d55275bb5441eef3fe0e46805f9ef70 # v3.5.0 with: cache-read-only: false develocity-access-key: ${{ inputs.develocity-access-key }} diff --git a/.github/actions/sync-to-maven-central/action.yml b/.github/actions/sync-to-maven-central/action.yml index 71d17baf73c7..d4e86caf1196 100644 --- a/.github/actions/sync-to-maven-central/action.yml +++ b/.github/actions/sync-to-maven-central/action.yml @@ -20,7 +20,7 @@ runs: using: composite steps: - name: Set Up JFrog CLI - uses: jfrog/setup-jfrog-cli@7c95feb32008765e1b4e626b078dfd897c4340ad # v4.1.2 + uses: jfrog/setup-jfrog-cli@105617d23456a69a92485207c4f28ae12297581d # v4.2.1 env: JF_ENV_SPRING: ${{ inputs.jfrog-cli-config-token }} - name: Download Release Artifacts @@ -38,13 +38,6 @@ runs: release: true generate-checksums: true - name: Await - shell: bash - run: | - url=${{ format('https://repo.maven.apache.org/maven2/org/springframework/spring-context/{0}/spring-context-{0}.jar', inputs.spring-framework-version) }} - echo "Waiting for $url" - until curl --fail --head --silent $url > /dev/null - do - echo "." - sleep 60 - done - echo "$url is available" + uses: ./.github/actions/await-http-resource + with: + url: ${{ format('https://repo.maven.apache.org/maven2/org/springframework/spring-context/{0}/spring-context-{0}.jar', inputs.spring-framework-version) }} diff --git a/.github/workflows/build-and-deploy-snapshot.yml b/.github/workflows/build-and-deploy-snapshot.yml index 5add62e127c7..0d475f558700 100644 --- a/.github/workflows/build-and-deploy-snapshot.yml +++ b/.github/workflows/build-and-deploy-snapshot.yml @@ -9,6 +9,7 @@ jobs: build-and-deploy-snapshot: name: Build and Deploy Snapshot runs-on: ubuntu-latest + timeout-minutes: 60 if: ${{ github.repository == 'spring-projects/spring-framework' }} steps: - name: Check Out Code diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7a69a67cec6b..5464966e9820 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,6 +9,7 @@ jobs: ci: name: '${{ matrix.os.name}} | Java ${{ matrix.java.version}}' runs-on: ${{ matrix.os.id }} + timeout-minutes: 60 if: ${{ github.repository == 'spring-projects/spring-framework' }} strategy: matrix: @@ -41,7 +42,7 @@ jobs: uses: ./.github/actions/build with: java-version: ${{ matrix.java.version }} - java-distribution: ${{ matrix.java.distribution || 'liberica' }} + java-early-access: ${{ matrix.java.early-access || 'false' }} java-toolchain: ${{ matrix.java.toolchain }} develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }} - name: Send Notification diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 54a2064166dc..56c1bfbfd32e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -74,7 +74,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Set up JFrog CLI - uses: jfrog/setup-jfrog-cli@7c95feb32008765e1b4e626b078dfd897c4340ad # v4.1.2 + uses: jfrog/setup-jfrog-cli@105617d23456a69a92485207c4f28ae12297581d # v4.2.1 env: JF_ENV_SPRING: ${{ secrets.JF_ARTIFACTORY_SPRING }} - name: Promote build diff --git a/.github/workflows/validate-gradle-wrapper.yml b/.github/workflows/validate-gradle-wrapper.yml index e1629a5f5fe1..7a473b3afe72 100644 --- a/.github/workflows/validate-gradle-wrapper.yml +++ b/.github/workflows/validate-gradle-wrapper.yml @@ -8,4 +8,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: gradle/actions/wrapper-validation@dbbdc275be76ac10734476cc723d82dfe7ec6eda # v3.4.2 + - uses: gradle/actions/wrapper-validation@d9c87d481d55275bb5441eef3fe0e46805f9ef70 # v3.5.0