diff --git a/.github/actions/await-http-resource/action.yml b/.github/actions/await-http-resource/action.yml new file mode 100644 index 00000000000..7d2b3462b53 --- /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 5bd86013994..78188ae631b 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -5,10 +5,10 @@ inputs: required: false default: '17' 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 0354737e5df..e0120764f1e 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 0505951dc36..e4dec8c7f0d 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: '17' 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' && '17' || '' }} - 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 71d17baf73c..d4e86caf119 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 eb2e0c0ece6..b1d8d240802 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 47a59ea4c6d..2d3a5e3ec16 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: @@ -39,7 +40,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 7cdf04194e7..911cf05d228 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 e1629a5f5fe..7a473b3afe7 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 diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index b38288a1723..b9b1e17de78 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -40,7 +40,7 @@ jobs: distribution: 'liberica' java-version: 17 - 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 - name: Configure Gradle Properties