This is an automated email from the ASF dual-hosted git repository.
dsmiley pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/main by this push:
new 40c58fe3ba8 GHA renovation (#3396)
40c58fe3ba8 is described below
commit 40c58fe3ba850faeff05205c9e0a7f1fe67464a2
Author: David Smiley <[email protected]>
AuthorDate: Wed Jul 30 21:42:53 2025 -0400
GHA renovation (#3396)
* GHA renovation
* branches (all)
* timeout-minutes
* checkout version
* harmonization across scripts (spacing / wording / labels)
* remove chmod for gradlew (unnecessary)
* From Lucene: prepare-for-build
* Refactor workflows to use our prepare-for-build
---
.github/actions/prepare-for-build/action.yml | 40 ++++++++++++++++++++++++++++
.github/workflows/bin-solr-test.yml | 30 ++++++---------------
.github/workflows/docker-test.yml | 32 ++++++----------------
.github/workflows/gradle-precommit.yml | 35 ++++++------------------
.github/workflows/solrj-test.yml | 29 +++++---------------
.github/workflows/tests-via-crave.yml | 3 +--
6 files changed, 72 insertions(+), 97 deletions(-)
diff --git a/.github/actions/prepare-for-build/action.yml
b/.github/actions/prepare-for-build/action.yml
new file mode 100644
index 00000000000..4000a7c0d2a
--- /dev/null
+++ b/.github/actions/prepare-for-build/action.yml
@@ -0,0 +1,40 @@
+# This composite action is included in other workflows to have a shared setup
+# for java, gradle, caches, etc.
+
+name: Prepare build
+description: Creates a shared setup for other workflows
+
+inputs:
+ java-version:
+ required: false
+ default: "21"
+ description: "The default JDK version to set up."
+
+ java-distribution:
+ required: false
+ default: "temurin"
+ description: "The default JDK distribution type"
+
+runs:
+ using: "composite"
+ steps:
+ - name: Set up Java (${{ inputs.java-distribution }}, ${{
inputs.java-version }})"
+ uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 #
v4.7.1
+ with:
+ distribution: ${{ inputs.java-distribution }}
+ java-version: ${{ inputs.java-version }}
+ java-package: jdk
+
+ - name: Cache gradle-wrapper.jar
+ uses: actions/cache@v4
+ with:
+ path: gradle/wrapper/gradle-wrapper.jar
+ key: gradle-wrapper-${{
hashFiles('gradle/wrapper/gradle-wrapper.jar.sha256') }}
+
+ # This includes "smart" caching of gradle dependencies.
+ - name: Set up Gradle
+ uses: gradle/actions/setup-gradle@v4
+ with:
+ # increase expiry time for the temp. develocity token.
+ #
https://github.com/gradle/actions/blob/main/docs/setup-gradle.md#increasing-the-expiry-time-for-develocity-access-tokens
+ develocity-token-expiry: 8
diff --git a/.github/workflows/bin-solr-test.yml
b/.github/workflows/bin-solr-test.yml
index 7adb7bfa479..2eeb426dbee 100644
--- a/.github/workflows/bin-solr-test.yml
+++ b/.github/workflows/bin-solr-test.yml
@@ -3,8 +3,7 @@ name: Solr Script Tests
on:
pull_request:
branches:
- - 'main'
- - 'branch_*'
+ - '*'
paths:
- '.github/workflows/bin-solr-test.yml'
- 'solr/bin/**'
@@ -17,33 +16,20 @@ jobs:
name: Run Solr Script Tests
runs-on: ubuntu-latest
+ timeout-minutes: 40
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
steps:
- # Setup
- - uses: actions/checkout@v4
- - name: Set up JDK
- uses: actions/setup-java@v4
- with:
- distribution: 'temurin'
- java-version: 21
- java-package: jdk
- - name: Setup Gradle
- uses: gradle/actions/setup-gradle@v4
- - name: Grant execute permission for gradlew
- run: chmod +x gradlew
- - uses: actions/cache@v4
- with:
- path: |
- ~/.gradle/caches
- key: ${{ runner.os }}-gradle-binsolr-${{ hashFiles('**/*.lockfile') }}
- restore-keys: |
- ${{ runner.os }}-gradle-binsolr-
- ${{ runner.os }}-gradle-
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - uses: ./.github/actions/prepare-for-build
+
- name: Test the bin/solr script
run: ./gradlew integrationTests
+
- name: Archive logs
if: ${{ failure() }}
uses: actions/upload-artifact@v4
diff --git a/.github/workflows/docker-test.yml
b/.github/workflows/docker-test.yml
index 268c7572f38..df28c0b1df1 100644
--- a/.github/workflows/docker-test.yml
+++ b/.github/workflows/docker-test.yml
@@ -3,8 +3,7 @@ name: Docker Build & Test
on:
pull_request:
branches:
- - 'main'
- - 'branch_*'
+ - '*'
paths:
- '.github/workflows/docker-test.yml'
- 'solr/bin/**'
@@ -17,6 +16,7 @@ jobs:
name: Build and test Docker image
runs-on: ubuntu-latest
+ timeout-minutes: 15
env:
SOLR_DOCKER_IMAGE_REPO: github-pr/solr
@@ -24,29 +24,13 @@ jobs:
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
steps:
- # Setup
- - uses: actions/checkout@v4
- - name: Set up JDK 21
- uses: actions/setup-java@v4
- with:
- distribution: 'temurin'
- java-version: 21
- java-package: jdk
- - name: Setup Gradle
- uses: gradle/actions/setup-gradle@v4
- - name: Install ACL
- run: sudo apt-get install acl
- - name: Grant execute permission for gradlew
- run: chmod +x gradlew
- - uses: actions/cache@v4
- with:
- path: |
- ~/.gradle/caches
- key: ${{ runner.os }}-gradle-docker-${{ hashFiles('**/*.lockfile') }}
- restore-keys: |
- ${{ runner.os }}-gradle-docker-
- ${{ runner.os }}-gradle-
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - uses: ./.github/actions/prepare-for-build
+
- name: Build Docker image with Gradle
run: ./gradlew solr:docker:docker
+
- name: Run tests on Docker image
run: ./gradlew solr:docker:testDocker
diff --git a/.github/workflows/gradle-precommit.yml
b/.github/workflows/gradle-precommit.yml
index 1be6bae7c61..25cb959bee8 100644
--- a/.github/workflows/gradle-precommit.yml
+++ b/.github/workflows/gradle-precommit.yml
@@ -3,45 +3,26 @@ name: Gradle Precommit
on:
pull_request:
branches:
- - 'main'
- - 'branch_*'
+ - '*'
jobs:
test:
name: gradle check
runs-on: ubuntu-latest
+ timeout-minutes: 15
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
steps:
- # Setup
- - uses: actions/checkout@v4
-
- - name: Set up JDK
- uses: actions/setup-java@v4
- with:
- distribution: 'temurin'
- java-version: 21
- java-package: jdk
-
- - name: Setup Gradle
- uses: gradle/actions/setup-gradle@v4
-
- - name: Grant execute permission for gradlew
- run: chmod +x gradlew
-
- - uses: actions/cache@v4
- with:
- path: |
- ~/.gradle/caches
- key: ${{ runner.os }}-gradle-precommit-${{ hashFiles('**/*.lockfile')
}}
- restore-keys: |
- ${{ runner.os }}-gradle-precommit-
- ${{ runner.os }}-gradle-
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - uses: ./.github/actions/prepare-for-build
- name: Run gradle check (without tests)
run: ./gradlew check -x test -Ptask.times=true --continue
- - uses: gradle/wrapper-validation-action@v3
+ - name: Validate Gradle wrapper
+ uses: gradle/actions/wrapper-validation@v4
diff --git a/.github/workflows/solrj-test.yml b/.github/workflows/solrj-test.yml
index 8842c13d9f1..ec8f8c7034f 100644
--- a/.github/workflows/solrj-test.yml
+++ b/.github/workflows/solrj-test.yml
@@ -3,8 +3,7 @@ name: SolrJ Tests
on:
pull_request:
branches:
- - 'main'
- - 'branch_*'
+ - '*'
paths:
- '.github/workflows/solrj-test.yml'
- 'solr/solrj/**'
@@ -14,30 +13,16 @@ jobs:
name: Run SolrJ Tests
runs-on: ubuntu-latest
+ timeout-minutes: 15
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
steps:
- # Setup
- - uses: actions/checkout@v4
- - name: Set up JDK 21
- uses: actions/setup-java@v4
- with:
- distribution: 'temurin'
- java-version: 21
- java-package: jdk
- - name: Setup Gradle
- uses: gradle/actions/setup-gradle@v4
- - name: Grant execute permission for gradlew
- run: chmod +x gradlew
- - uses: actions/cache@v4
- with:
- path: |
- ~/.gradle/caches
- key: ${{ runner.os }}-gradle-solrj-${{ hashFiles('**/*.lockfile') }}
- restore-keys: |
- ${{ runner.os }}-gradle-solrj-
- ${{ runner.os }}-gradle-
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - uses: ./.github/actions/prepare-for-build
+
- name: Test the SolrJ Package
run: ./gradlew solr:solrj:test
diff --git a/.github/workflows/tests-via-crave.yml
b/.github/workflows/tests-via-crave.yml
index f9fbc61c9a3..02b0e99660f 100644
--- a/.github/workflows/tests-via-crave.yml
+++ b/.github/workflows/tests-via-crave.yml
@@ -3,8 +3,7 @@ name: Solr Tests
on:
pull_request:
branches:
- - 'main'
- - 'branch_*'
+ - '*'
jobs:
test: