Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions .github/actions/prepare-for-build/action.yml
Original file line number Diff line number Diff line change
@@ -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: "11"
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@0723195856401067f7a2779048b490ace7a47d7c # v5.0.2
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
30 changes: 8 additions & 22 deletions .github/workflows/bin-solr-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ name: Solr Script Tests
on:
pull_request:
branches:
- 'main'
- 'branch_*'
- '*'
paths:
- '.github/workflows/bin-solr-test.yml'
- 'solr/bin/**'
Expand All @@ -17,30 +16,17 @@ jobs:
name: Run Solr Script Tests

runs-on: ubuntu-latest
timeout-minutes: 40

steps:
# Setup
- uses: actions/checkout@v5
- name: Set up JDK 11
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 11
java-package: jdk
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- uses: actions/cache@v5
with:
path: |
~/.gradle/caches
key: ${{ runner.os }}-gradle-binsolr-${{ hashFiles('versions.lock') }}
restore-keys: |
${{ runner.os }}-gradle-binsolr-
${{ runner.os }}-gradle-
- name: Checkout code
uses: actions/checkout@v5

- uses: ./.github/actions/prepare-for-build

- name: Test the bin/solr script
run: ./gradlew integrationTests

- name: Archive logs
if: ${{ failure() }}
uses: actions/upload-artifact@v6
Expand Down
33 changes: 8 additions & 25 deletions .github/workflows/docker-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,10 @@ name: Docker Build & Test
on:
pull_request:
branches:
- 'main'
- 'branch_*'
- '*'
paths:
- '.github/workflows/docker-test.yml'
- 'solr/bin/**'
- 'solr/prometheus-exporter/bin/**'
- 'solr/docker/**'
- 'solr/packaging/**'

Expand All @@ -17,35 +15,20 @@ jobs:
name: Build and test Docker image

runs-on: ubuntu-latest
timeout-minutes: 15

env:
SOLR_DOCKER_IMAGE_REPO: github-pr/solr
SOLR_DOCKER_IMAGE_TAG: ${{github.event.number}}

steps:
# Setup
- uses: actions/checkout@v5
- name: Set up JDK 11
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 11
java-package: jdk
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Install ACL
run: sudo apt-get install acl
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- uses: actions/cache@v5
with:
path: |
~/.gradle/caches
key: ${{ runner.os }}-gradle-docker-${{ hashFiles('versions.lock') }}
restore-keys: |
${{ runner.os }}-gradle-docker-
${{ runner.os }}-gradle-
- name: Checkout code
uses: actions/checkout@v5

- 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
22 changes: 1 addition & 21 deletions .github/workflows/gradle-extraction-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,27 +19,7 @@ jobs:
- name: Checkout code
uses: actions/checkout@v5

- name: Set up JDK 11
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 11
java-package: jdk

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- uses: actions/cache@v5
with:
path: |
~/.gradle/caches
key: ${{ runner.os }}-gradle-precommit-${{ hashFiles('versions.lock') }}
restore-keys: |
${{ runner.os }}-gradle-precommit-
${{ runner.os }}-gradle-
- uses: ./.github/actions/prepare-for-build

- name: Run extraction module tests
run: ./gradlew --no-daemon solr:modules:extraction:check
37 changes: 7 additions & 30 deletions .github/workflows/gradle-precommit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,43 +3,20 @@ name: Gradle Precommit
on:
pull_request:
branches:
- 'main'
- 'branch_*'
- '*'

jobs:
test:
name: gradle check w/ Java 11
name: gradle check

runs-on: ubuntu-latest
timeout-minutes: 15

steps:
# Setup
- uses: actions/checkout@v5
- name: Checkout code
uses: actions/checkout@v5

- name: Set up JDK 11
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 11
java-package: jdk

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- uses: actions/cache@v5
with:
path: |
~/.gradle/caches
key: ${{ runner.os }}-gradle-precommit-${{ hashFiles('versions.lock') }}
restore-keys: |
${{ runner.os }}-gradle-precommit-
${{ runner.os }}-gradle-
- uses: ./.github/actions/prepare-for-build

- name: Run gradle check (without tests)
run: ./gradlew check -x test -Ptask.times=true

- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v5
run: ./gradlew check -x test -Ptask.times=true --continue
31 changes: 8 additions & 23 deletions .github/workflows/solrj-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ name: SolrJ Tests
on:
pull_request:
branches:
- 'main'
- 'branch_*'
- '*'
paths:
- '.github/workflows/solrj-test.yml'
- 'solr/solrj/**'
Expand All @@ -14,27 +13,13 @@ jobs:
name: Run SolrJ Tests

runs-on: ubuntu-latest
timeout-minutes: 15

steps:
# Setup
- uses: actions/checkout@v5
- name: Set up JDK 11
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 11
java-package: jdk
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- uses: actions/cache@v5
with:
path: |
~/.gradle/caches
key: ${{ runner.os }}-gradle-solrj-${{ hashFiles('versions.lock') }}
restore-keys: |
${{ runner.os }}-gradle-solrj-
${{ runner.os }}-gradle-
- name: Test the SolrJ Package
- name: Checkout code
uses: actions/checkout@v5

- uses: ./.github/actions/prepare-for-build

- name: Test SolrJ module
run: ./gradlew solr:solrj:test
5 changes: 2 additions & 3 deletions .github/workflows/tests-via-crave.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ name: Solr Tests
on:
pull_request:
branches:
- 'main'
- 'branch_*'
- '*'

jobs:
test:
Expand All @@ -26,7 +25,7 @@ jobs:
- name: Initialize, build, test
run: |
cd /crave-devspaces/pipeline/runs/${GITHUB_RUN_ID}_${GITHUB_RUN_NUMBER}
crave run --clean
crave run --clean --message "PR: ${GITHUB_REF_NAME}" -- ./gradlew --console=plain test
- name: Cleanup
if: ${{ always() }}
run: |
Expand Down
23 changes: 1 addition & 22 deletions .github/workflows/validate-changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,27 +28,6 @@ jobs:
echo "skip=false" >> $GITHUB_OUTPUT
fi

- name: Check for CHANGES.txt edits
if: steps.check-label.outputs.skip == 'false'
run: |
# Get the list of changed files
CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD)

if echo "$CHANGED_FILES" | grep -q "^solr/CHANGES\.txt$"; then
echo "::error::Use of solr/CHANGES.txt is deprecated. Please create a changelog yaml file instead."
echo ""
echo "Instead of editing CHANGES.txt, please:"
echo "1. Run: ./gradlew writeChangelog"
echo "2. Edit the generated YAML file in changelog/unreleased/"
echo "3. Commit both the code change and the YAML file"
echo ""
echo "For more information, see: dev-docs/changelog.adoc"
echo ""
echo "If this PR should not have a changelog entry (e.g., documentation-only changes),"
echo "add the 'no-changelog' label to this PR."
exit 1
fi

- name: Check for changelog entry
if: steps.check-label.outputs.skip == 'false'
run: |
Expand Down Expand Up @@ -106,7 +85,7 @@ jobs:
VALIDATION_FAILED=false

while IFS= read -r file; do
if [ -z "$file" ]; then
if [ -z "$file" ] || [ ! -f "$file" ]; then
continue
fi

Expand Down
Loading