Skip to content

feat(hitl): add createHITLRequest — paired SDK release for ADK plugin v1 #567

feat(hitl): add createHITLRequest — paired SDK release for ADK plugin v1

feat(hitl): add createHITLRequest — paired SDK release for ADK plugin v1 #567

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
# Cancel orphaned PR runs when a new commit is pushed; push to main uses SHA so
# main runs never queue or cancel each other.
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
env:
AXONFLOW_TELEMETRY: 'off'
jobs:
build:
runs-on: ubuntu-latest
strategy:
# PR runs only Java 17 (current release toolchain). Push to main and
# workflow_dispatch run the full [11, 17, 21] matrix to validate
# version-specific drift before the next tag. Cuts PR-time wallclock
# ~2/3 (5.2m → ~2m on the heaviest workflow in the SDK fleet).
matrix:
java-version: ${{ fromJson(github.event_name == 'pull_request' && '[17]' || '[11, 17, 21]') }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java-version }}
distribution: 'temurin'
cache: 'maven'
- name: Configure Maven mirror
uses: ./.github/actions/setup-maven
- name: Build with Maven
run: |
for i in 1 2 3; do
echo "Attempt $i: Building..."
if mvn clean compile -B -U; then
echo "Build successful"
break
fi
if [ $i -eq 3 ]; then
echo "Build failed after 3 attempts"
exit 1
fi
echo "Attempt $i failed, waiting 30 seconds..."
sleep 30
done
- name: Run unit tests
run: |
for i in 1 2 3; do
echo "Attempt $i: Running tests..."
if mvn test -B; then
echo "Tests passed"
break
fi
if [ $i -eq 3 ]; then
echo "Tests failed after 3 attempts"
exit 1
fi
echo "Attempt $i failed, waiting 30 seconds..."
sleep 30
done
- name: Generate coverage report
if: matrix.java-version == 17
run: mvn jacoco:report -B
- name: Upload coverage to Codecov
if: matrix.java-version == 17
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: target/site/jacoco/jacoco.xml
flags: unittests
name: codecov-java-sdk
fail_ci_if_error: false
- name: Check coverage threshold
if: matrix.java-version == 17
run: mvn jacoco:check -B
# Aggregator that always reports a single check name regardless of the
# matrix shape (PR-time matrix is `[17]`; push/dispatch is `[11, 17, 21]`).
# Branch protection requires `Build Summary`, not the per-version names,
# so matrix changes don't strand required checks.
build-summary:
name: Build Summary
needs: [build]
if: always()
runs-on: ubuntu-latest
steps:
- name: Aggregate build matrix result
run: |
result="${{ needs.build.result }}"
echo "build matrix result: $result"
if [ "$result" != "success" ] && [ "$result" != "skipped" ]; then
echo "::error::build matrix did not all pass (result: $result)"
exit 1
fi
echo "Build matrix OK"
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: 'maven'
- name: Configure Maven mirror
uses: ./.github/actions/setup-maven
- name: Check code formatting
run: |
for i in 1 2 3; do
echo "Attempt $i: Checking formatting..."
if mvn com.spotify.fmt:fmt-maven-plugin:check -B -U; then
echo "Formatting check passed"
break
fi
# If it's a formatting error (not network), don't retry
if [ $i -eq 1 ]; then
echo "Code formatting check skipped"
break
fi
echo "Attempt $i failed, waiting 30 seconds..."
sleep 30
done
package:
runs-on: ubuntu-latest
needs: [build, lint]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: 'maven'
- name: Configure Maven mirror
uses: ./.github/actions/setup-maven
- name: Package JAR
run: |
for i in 1 2 3; do
echo "Attempt $i: Packaging..."
if mvn package -DskipTests -B -U; then
echo "Package successful"
break
fi
if [ $i -eq 3 ]; then
echo "Package failed after 3 attempts"
exit 1
fi
echo "Attempt $i failed, waiting 30 seconds..."
sleep 30
done
- name: Upload JAR artifact
uses: actions/upload-artifact@v4
with:
name: axonflow-sdk-java
path: target/*.jar
retention-days: 7