Skip to content

Bump version to 3.4.0 (#92) #43

Bump version to 3.4.0 (#92)

Bump version to 3.4.0 (#92) #43

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
release:
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'
server-id: central
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
gpg-passphrase: GPG_PASSPHRASE
- name: Configure GPG for headless operation
run: |
echo "allow-loopback-pinentry" >> ~/.gnupg/gpg-agent.conf
echo "pinentry-mode loopback" >> ~/.gnupg/gpg.conf
gpg-connect-agent reloadagent /bye || true
- name: Configure Maven settings with mirror
run: |
mkdir -p ~/.m2
cat > ~/.m2/settings.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<servers>
<server>
<id>central</id>
<username>${env.MAVEN_USERNAME}</username>
<password>${env.MAVEN_PASSWORD}</password>
</server>
</servers>
<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: Extract version from tag
id: version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- name: Update version in pom.xml
run: |
# Retry logic for Maven Central 403 errors
for i in 1 2 3; do
echo "Attempt $i: Updating version..."
if mvn versions:set -DnewVersion=${{ steps.version.outputs.VERSION }} -B -U; then
echo "Version update successful"
break
fi
echo "Attempt $i failed, waiting 30 seconds..."
sleep 30
done
- name: Run tests
run: |
for i in 1 2 3; do
echo "Attempt $i: Running tests..."
if mvn test -B -U; 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: Build and deploy to Maven Central
env:
MAVEN_USERNAME: ${{ secrets.CENTRAL_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.CENTRAL_TOKEN }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
run: |
for i in 1 2 3; do
echo "Attempt $i: Deploying to Maven Central..."
if mvn clean deploy -Prelease -DskipTests -B -U -Dgpg.passphrase="${GPG_PASSPHRASE}"; then
echo "Deploy successful"
break
fi
if [ $i -eq 3 ]; then
echo "Deploy failed after 3 attempts"
exit 1
fi
echo "Attempt $i failed, waiting 60 seconds..."
sleep 60
done
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
name: Release ${{ steps.version.outputs.VERSION }}
body: |
## AxonFlow Java SDK v${{ steps.version.outputs.VERSION }}
### Installation
**Maven:**
```xml
<dependency>
<groupId>com.getaxonflow</groupId>
<artifactId>axonflow-sdk</artifactId>
<version>${{ steps.version.outputs.VERSION }}</version>
</dependency>
```
**Gradle:**
```groovy
implementation 'com.getaxonflow:axonflow-sdk:${{ steps.version.outputs.VERSION }}'
```
### Changes
See [CHANGELOG.md](https://github.com/getaxonflow/axonflow-sdk-java/blob/main/CHANGELOG.md) for details.
files: |
target/*.jar
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}