Skip to content

revert(samples): drop Interactions from ai-chat — redundant with live… #572

revert(samples): drop Interactions from ai-chat — redundant with live…

revert(samples): drop Interactions from ai-chat — redundant with live… #572

Workflow file for this run

name: "CI: Core (JDK 21/26)"
on:
push:
branches: [ '**' ]
paths-ignore:
- '**.md'
- 'docs/**'
- 'LICENSE'
pull_request:
branches: [ main ]
paths-ignore:
- '**.md'
- 'docs/**'
- 'LICENSE'
jobs:
architectural-validation:
name: Architectural Validation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.12'
- name: Run Architectural Validation
run: ./scripts/architectural-validation.sh
doc-version-check:
name: Documentation Version Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Verify doc versions are consistent
run: |
# Extract POM version
POM_VERSION=$(grep -m1 '<version>' pom.xml | sed 's/.*<version>\(.*\)<\/version>.*/\1/')
echo "POM version: $POM_VERSION"
if [[ "$POM_VERSION" == *-SNAPSHOT ]]; then
# During dev, docs should reference the last release
BASE="${POM_VERSION%-SNAPSHOT}"
IFS='.' read -r MAJ MIN PATCH <<< "$BASE"
EXPECTED="$MAJ.$MIN.$((PATCH - 1))"
else
EXPECTED="$POM_VERSION"
fi
echo "Expected doc version: $EXPECTED"
# Check all doc/README version references
STALE=$(grep -rn '<version>[0-9]' docs/ modules/*/README.md README.md 2>/dev/null \
| grep -v "$EXPECTED" \
| grep -v 'CHANGELOG\|target/\|node_modules' || true)
if [ -n "$STALE" ]; then
echo "::warning::Documentation version drift detected (expected $EXPECTED):"
echo "$STALE"
echo ""
echo "Fix with: ./scripts/update-doc-versions.sh $EXPECTED"
else
echo "All documentation references match $EXPECTED"
fi
build-and-test:
name: Build & Test (JDK ${{ matrix.java-version }})
runs-on: ubuntu-latest
needs: architectural-validation
strategy:
matrix:
include:
- java-version: 21
distribution: temurin
- java-version: 26
distribution: oracle
# PMD's ASM does not yet support class file major version 70 (JDK 26)
mvn-extra-args: -Dpmd.skip=true
fail-fast: false
steps:
- uses: actions/checkout@v6
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v5
with:
java-version: ${{ matrix.java-version }}
distribution: ${{ matrix.distribution }}
cache: 'maven'
- name: Build Core Modules
run: ./mvnw -B clean install -DskipTests -Dgpg.skip=true ${{ matrix.mvn-extra-args }}
- name: Run Core Tests
run: ./mvnw -B test -Dgpg.skip=true ${{ matrix.mvn-extra-args }} -pl modules/cpr,modules/ai,modules/mcp,modules/kotlin,modules/spring-ai,modules/langchain4j,modules/embabel,modules/redis,modules/kafka,modules/durable-sessions,modules/durable-sessions-sqlite,modules/durable-sessions-redis,modules/integration-tests,modules/quarkus-extension,modules/spring-boot-starter,modules/spring-boot3-starter,modules/coordinator,modules/agent
- name: Upload Test Results
if: failure()
uses: actions/upload-artifact@v7
with:
name: test-results-jdk-${{ matrix.java-version }}
path: |
**/target/surefire-reports/
**/target/failsafe-reports/
# E2E tests run in a separate workflow (e2e.yml) so failures
# don't block build results and individual groups can be re-run independently.