Switch JSON parsing to Gson for improved reliability (#91) #24
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |