Skip to content

Switch JSON parsing to Gson for improved reliability (#91) #24

Switch JSON parsing to Gson for improved reliability (#91)

Switch JSON parsing to Gson for improved reliability (#91) #24

Workflow file for this run

name: Publish Java SDK to Maven Central
on:
push:
tags:
- 'v4*'
jobs:
release:
if: startsWith(github.ref, 'refs/tags/v4')
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: 'gradle'
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Cache Gradle dependencies
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Ensure build.gradle.kts version matches tag
run: |
VERSION=$(./gradlew properties -q | grep "^version:" | awk '{print $2}')
TAG=${GITHUB_REF#refs/tags/}
echo "Detected build.gradle.kts version: $VERSION"
echo "Detected git tag: $TAG"
if [ "$VERSION" = "${TAG#v}" ]; then
echo "✅ OK: build.gradle.kts version matches the tag"
else
echo "❌ ERROR: build.gradle.kts version ($VERSION) does not match tag ($TAG)"
exit 1
fi
- name: Run tests
run: ./gradlew test
- name: Run security scan
run: ./gradlew dependencyCheckAnalyze
continue-on-error: true
- name: Build and publish to Maven Central
env:
SONATYPE_USERNAME: ${{ secrets.MAVEN_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
run: ./gradlew publishToCentralPortal