Skip to content

prep(v5.3.0): fix IPv6 endpoint classification — Release Pending (2026-04-09) #405

prep(v5.3.0): fix IPv6 endpoint classification — Release Pending (2026-04-09)

prep(v5.3.0): fix IPv6 endpoint classification — Release Pending (2026-04-09) #405

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
env:
DO_NOT_TRACK: '1'
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
java-version: [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
run: |
mkdir -p ~/.m2
cat > ~/.m2/settings.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<mirrors>
<mirror>
<id>central-mirror</id>
<name>Maven Central Mirror (repo1)</name>
<url>https://repo1.maven.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
EOF
- 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
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
run: |
mkdir -p ~/.m2
cat > ~/.m2/settings.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<mirrors>
<mirror>
<id>central-mirror</id>
<name>Maven Central Mirror (repo1)</name>
<url>https://repo1.maven.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
EOF
- 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
integration-test:
runs-on: ubuntu-latest
needs: build
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
run: |
mkdir -p ~/.m2
cat > ~/.m2/settings.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<mirrors>
<mirror>
<id>central-mirror</id>
<name>Maven Central Mirror (repo1)</name>
<url>https://repo1.maven.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
EOF
- name: Run integration tests
run: mvn verify -DskipUnitTests -B -U
continue-on-error: true
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
run: |
mkdir -p ~/.m2
cat > ~/.m2/settings.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<mirrors>
<mirror>
<id>central-mirror</id>
<name>Maven Central Mirror (repo1)</name>
<url>https://repo1.maven.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
EOF
- 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