Skip to content
Closed
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
12 changes: 6 additions & 6 deletions .github/workflows/artifactory-milestone-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ jobs:
- name: Checkout source code
uses: actions/checkout@v4

- name: Set up JDK 17
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '25' # This action actually installs several and the toolchains plugin in maven will select 25 alright, but this makes 25 the 'default'
distribution: 'temurin'
cache: 'maven'

Expand All @@ -27,14 +27,14 @@ jobs:

- name: Update release version
run: |
mvn versions:set -DgenerateBackupPoms=false -DnewVersion=$RELEASE_VERSION
mvn versions:set -DgenerateBackupPoms=false -DnewVersion=$RELEASE_VERSION -pl spring-ai-bom
./mvnw versions:set -DgenerateBackupPoms=false -DnewVersion=$RELEASE_VERSION
./mvnw versions:set -DgenerateBackupPoms=false -DnewVersion=$RELEASE_VERSION -pl spring-ai-bom

- name: Enforce release rules
run: mvn org.apache.maven.plugins:maven-enforcer-plugin:enforce -Drules=requireReleaseDeps
run: ./wmvn org.apache.maven.plugins:maven-enforcer-plugin:enforce -Drules=requireReleaseDeps

- name: Build with Maven and deploy to Artifactory's milestone repository
env:
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
run: mvn -P artifactory-milestone -s settings.xml --batch-mode -Dmaven.test.skip=true deploy
run: ./mvnw -P artifactory-milestone -s settings.xml --batch-mode -Dmaven.test.skip=true deploy
33 changes: 0 additions & 33 deletions .github/workflows/continuous-inspection.yml

This file was deleted.

14 changes: 7 additions & 7 deletions .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@ jobs:
large-packages: false
docker-images: false

- name: Set up JDK 17
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '25' # This action actually installs several and the toolchains plugin in maven will select 25 alright, but this makes 25 the 'default'
distribution: 'temurin'
cache: 'maven'

Expand All @@ -73,25 +73,25 @@ jobs:
# This prevents maintenance branch snapshots from conflicting with main branch artifacts
run: |
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
./mvnw -s settings.xml -Pci-fast-integration-tests -Pjavadoc -Dfailsafe.rerunFailingTestsCount=3 \
./mvnw -s settings.xml -ntp -Pci-fast-integration-tests -Pjavadoc -Dfailsafe.rerunFailingTestsCount=3 \
--batch-mode --update-snapshots deploy
else
./mvnw -s settings.xml -Pci-fast-integration-tests -Pjavadoc -Dfailsafe.rerunFailingTestsCount=3 \
./mvnw -s settings.xml -ntp -Pci-fast-integration-tests -Pjavadoc -Dfailsafe.rerunFailingTestsCount=3 \
--batch-mode --update-snapshots verify
fi

- name: Generate Java docs
if: github.ref == 'refs/heads/main'
run: ./mvnw --batch-mode javadoc:aggregate
run: ./mvnw --batch-mode -ntp javadoc:aggregate

- name: Generate assembly
if: github.ref == 'refs/heads/main'
working-directory: spring-ai-docs
run: ../mvnw --batch-mode assembly:single
run: ../mvnw --batch-mode -ntp assembly:single

- name: Capture project version
if: github.ref == 'refs/heads/main'
run: echo PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version --quiet -DforceStdout) >> $GITHUB_ENV
run: echo PROJECT_VERSION=$(./mvnw help:evaluate -Dexpression=project.version --quiet -DforceStdout) >> $GITHUB_ENV

- name: Setup SSH key
if: github.ref == 'refs/heads/main'
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/documentation-upload.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,22 @@ jobs:
- name: Checkout source code
uses: actions/checkout@v4

- name: Set up JDK 17
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '25' # This action actually installs several and the toolchains plugin in maven will select 25 alright, but this makes 25 the 'default'
distribution: 'temurin'
cache: 'maven'

- name: Generate Java docs
run: ./mvnw --batch-mode clean install -DskipTests -Pjavadoc
run: ./mvnw --batch-mode -ntp clean install -DskipTests -Pjavadoc

- name: Aggregate Java docs
run: ./mvnw --batch-mode javadoc:aggregate
run: ./mvnw --batch-mode -ntp javadoc:aggregate

- name: Generate assembly
working-directory: spring-ai-docs
run: mvn --batch-mode assembly:single
run: ../mvnw --batch-mode -ntp assembly:single

- name: Setup SSH key
env:
Expand Down
42 changes: 21 additions & 21 deletions .github/workflows/fast-continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,16 @@ jobs:
large-packages: false
docker-images: false

- name: Set up JDK 17
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '25' # This action actually installs several and the toolchains plugin in maven will select 25 alright, but this makes 25 the 'default'
distribution: 'temurin'
cache: 'maven'

- name: Build all modules with unit tests
run: |
./mvnw --batch-mode --update-snapshots clean install
./mvnw --batch-mode -ntp --update-snapshots clean install

- name: Upload Maven repository
uses: actions/upload-artifact@v4
Expand All @@ -62,10 +62,10 @@ jobs:
- name: Checkout source code
uses: actions/checkout@v4

- name: Set up JDK 17
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '25' # This action actually installs several and the toolchains plugin in maven will select 25 alright, but this makes 25 the 'default'
distribution: 'temurin'
cache: 'maven'

Expand All @@ -84,7 +84,7 @@ jobs:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
SPRING_AI_OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
./mvnw --batch-mode --no-snapshot-updates \
./mvnw --batch-mode -ntp --no-snapshot-updates \
-pl models/spring-ai-ollama,auto-configurations/models/spring-ai-autoconfigure-model-ollama \
-Pci-fast-integration-tests \
-Dfailsafe.rerunFailingTestsCount=3 \
Expand All @@ -99,10 +99,10 @@ jobs:
- name: Checkout source code
uses: actions/checkout@v4

- name: Set up JDK 17
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '25' # This action actually installs several and the toolchains plugin in maven will select 25 alright, but this makes 25 the 'default'
distribution: 'temurin'
cache: 'maven'

Expand All @@ -121,7 +121,7 @@ jobs:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
SPRING_AI_OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
./mvnw --batch-mode --no-snapshot-updates \
./mvnw --batch-mode -ntp --no-snapshot-updates \
-pl models/spring-ai-openai,auto-configurations/models/spring-ai-autoconfigure-model-openai \
-Pci-fast-integration-tests \
-Dfailsafe.rerunFailingTestsCount=3 \
Expand All @@ -136,10 +136,10 @@ jobs:
- name: Checkout source code
uses: actions/checkout@v4

- name: Set up JDK 17
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '25' # This action actually installs several and the toolchains plugin in maven will select 25 alright, but this makes 25 the 'default'
distribution: 'temurin'
cache: 'maven'

Expand All @@ -158,7 +158,7 @@ jobs:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
SPRING_AI_OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
./mvnw --batch-mode --no-snapshot-updates \
./mvnw --batch-mode -ntp --no-snapshot-updates \
-pl models/spring-ai-google-genai,auto-configurations/models/spring-ai-autoconfigure-model-google-genai,mcp/common,mcp/mcp-annotations-spring,auto-configurations/mcp/spring-ai-autoconfigure-mcp-client-common,auto-configurations/mcp/spring-ai-autoconfigure-mcp-client-httpclient,auto-configurations/mcp/spring-ai-autoconfigure-mcp-client-webflux,auto-configurations/mcp/spring-ai-autoconfigure-mcp-server-common,auto-configurations/mcp/spring-ai-autoconfigure-mcp-server-webmvc,auto-configurations/mcp/spring-ai-autoconfigure-mcp-server-webflux,vector-stores/spring-ai-chroma-store,vector-stores/spring-ai-pgvector-store,spring-ai-integration-tests \
-Pci-fast-integration-tests \
-Dfailsafe.rerunFailingTestsCount=3 \
Expand All @@ -173,10 +173,10 @@ jobs:
- name: Checkout source code
uses: actions/checkout@v4

- name: Set up JDK 17
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '25'
distribution: 'temurin'
cache: 'maven'

Expand All @@ -187,11 +187,11 @@ jobs:
path: ~/.m2/repository

- name: Generate Java docs
run: ./mvnw --batch-mode javadoc:aggregate
run: ./mvnw --batch-mode -ntp javadoc:aggregate

- name: Generate assembly
working-directory: spring-ai-docs
run: ../mvnw --batch-mode assembly:single
run: ../mvnw --batch-mode -ntp assembly:single

- name: Upload Javadoc
uses: actions/upload-artifact@v4
Expand All @@ -216,10 +216,10 @@ jobs:
- name: Checkout source code
uses: actions/checkout@v4

- name: Set up JDK 17
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '25'
distribution: 'temurin'
cache: 'maven'

Expand All @@ -234,7 +234,7 @@ jobs:
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
run: |
./mvnw -s settings.xml --batch-mode -DskipTests deploy
./mvnw -s settings.xml --batch-mode -ntp -DskipTests deploy

deploy-docs:
name: Deploy documentation
Expand All @@ -245,10 +245,10 @@ jobs:
- name: Checkout source code
uses: actions/checkout@v4

- name: Set up JDK 17
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '25'
distribution: 'temurin'
cache: 'maven'

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/main-push-fast.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:

- uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '25'
distribution: 'temurin'
# cache: 'maven' # Disabled for fast workflow - reduces post-job noise

Expand Down Expand Up @@ -140,9 +140,9 @@ jobs:
echo "INFO: Running tests for affected modules: $MODS"
# Build dependencies without tests, then test only the affected modules
echo "INFO: Phase 1 - Building dependencies (this may take a few minutes)..."
./mvnw -B -q -T 1C -DskipTests -pl "$MODS" -am install
./mvnw -B -ntp -q -T 1C -DskipTests -pl "$MODS" -am install
echo "INFO: Phase 2 - Running tests for affected modules..."
./mvnw -B -q -T 1C -Pci-fast-integration-tests -DfailIfNoTests=false -pl "$MODS" verify
./mvnw -B -ntp -q -T 1C -Pci-fast-integration-tests -DfailIfNoTests=false -pl "$MODS" verify
echo "INFO: Testing complete"
fi

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/maintenance-fast.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:

- uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '25'
distribution: 'temurin'
cache: 'maven'

Expand Down Expand Up @@ -92,4 +92,4 @@ jobs:
echo "Check the 'Compute impacted modules' step output for debugging info"
exit 1
fi
./mvnw -B -q -T 1C -Pintegration-tests -DfailIfNoTests=false -pl "$MODS" -amd verify
./mvnw -B -ntp -q -T 1C -Pintegration-tests -DfailIfNoTests=false -pl "$MODS" -amd verify
10 changes: 5 additions & 5 deletions .github/workflows/new-maven-central-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ jobs:
- name: Check out sources
uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v3
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
java-version: 25
cache: 'maven'

- name: Install GPG key
Expand All @@ -31,5 +31,5 @@ jobs:
CENTRAL_TOKEN_PASSWORD: ${{ secrets.CENTRAL_TOKEN_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
run: |
./mvnw -B clean install -DskipTests
./mvnw -B clean deploy -Psonatype -s settings.xml
./mvnw -B -ntp clean install -DskipTests
./mvnw -B -ntp clean deploy -Psonatype -s settings.xml
6 changes: 3 additions & 3 deletions .github/workflows/pr-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ jobs:
- name: Checkout source code
uses: actions/checkout@v4

- name: Set up JDK 17
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '25' # This action actually installs several and the toolchains plugin in maven will select 25 alright, but this makes 25 the 'default'
distribution: 'temurin'
cache: 'maven'

- name: Run tests
run: |
./mvnw --batch-mode test
./mvnw -ntp -B -U test
4 changes: 2 additions & 2 deletions .github/workflows/release-notes-generation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ jobs:
- name: Download changelog generator
run: wget https://github.com/spring-io/github-changelog-generator/releases/download/v$GENERATOR_VERSION/github-changelog-generator.jar

- name: Set up JDK 17
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '25'
distribution: 'temurin'

- name: Prepare configuration file
Expand Down
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,11 @@ To clone it you have to either:

## Building

Build using Java 17.
The project targets and build artifacts compatible with Java 17+, but requires a JDK 25+
to build. This is enforced by the maven toolchains plugin and a compatible JDK should be
automatically located on your machine if it exists, without forcing you to make it the
default in the PATH. Please refer to the [maven toolchains plugin](https://maven.apache.org/plugins/maven-toolchains-plugin/index.html) if detection does
not work as expected.

To build with running unit tests

Expand Down
Loading