Skip to content

WalletAndroid-SDK-Publish #507

WalletAndroid-SDK-Publish

WalletAndroid-SDK-Publish #507

Workflow file for this run

name: WalletAndroid-SDK-Publish
on:
workflow_dispatch:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: choice
options:
- dev
- rc
- prod
jobs:
release-android-sdk:
runs-on: ubuntu-latest
steps:
- name: 🧾 Checkout code
uses: actions/checkout@v4
- name: ☕ Set up Java 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: temurin
- name: 🛠️ Set up Gradle
uses: gradle/actions/setup-gradle@v3
- name: 📝 Get version from build.gradle
run: |
VERSION=$(grep "def resolvedVersion = .*" VCL/build.gradle | sed -n 's/.*?: "\([^"]*\)".*/\1/p')
echo "RELEASE_VERSION=$VERSION" >> $GITHUB_ENV
echo "Found version: $VERSION"
- name: 🧪 Build AAR + Sources + Javadoc
run: |
./gradlew clean \
:VCL:assembleRelease \
:VCL:generateSourcesJar \
:VCL:generateJavadocJar \
-PprojectVersion=${RELEASE_VERSION} \
-Pprerelease=${{ github.event.inputs.environment == 'rc' }} \
--stacktrace
- name: ✅ Verify expected artifacts exist
run: |
echo "Checking artifacts for version ${RELEASE_VERSION}..."
test -f VCL/build/outputs/aar/vcl-${RELEASE_VERSION}.aar || (echo "❌ AAR not found" && exit 1)
test -f VCL/build/libs/vcl-${RELEASE_VERSION}-sources.jar || (echo "❌ Sources JAR missing" && exit 1)
test -f VCL/build/libs/vcl-${RELEASE_VERSION}-javadoc.jar || (echo "❌ Javadoc JAR missing" && exit 1)
- name: 🚀 Run JReleaser full-release
if: github.event.inputs.environment != 'dev'
uses: jreleaser/release-action@v2
with:
version: 1.18.0
arguments: >
full-release
--config-file=jreleaser.template.yml
-D=projectVersion=${{ env.RELEASE_VERSION }}
--strict
env:
JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_TOKEN_USERNAME }}
JRELEASER_MAVENCENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_TOKEN_PASSWORD }}
JRELEASER_MAVENCENTRAL_STAGE: ${{ secrets.MAVEN_CENTRAL_STAGING_PROFILE_ID }}
JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
JRELEASER_PROJECT_VERSION: ${{ env.RELEASE_VERSION }}
JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.MAVEN_CENTRAL_GPG_PUBLIC_KEY }}
JRELEASER_GPG_SECRET_KEY: ${{ secrets.MAVEN_CENTRAL_GPG_PRIVATE_KEY }}
JRELEASER_GPG_PASSPHRASE: ${{ secrets.MAVEN_CENTRAL_SIGNING_PASSWORD }}
JRELEASER_TAG_NAME: ${{ github.event.inputs.environment == 'rc' && 'rc-' || '' }}${{ env.RELEASE_VERSION }}
JRELEASER_RELEASE_NAME: ${{ github.event.inputs.environment == 'rc' && 'Release Candidate ' || '' }}${{ env.RELEASE_VERSION }}
JRELEASER_PRERELEASE_PATTERN: ${{ github.event.inputs.environment == 'rc' && env.RELEASE_VERSION || 'OFF' }}
- name: 🧹 Clean up GPG files
if: github.event.inputs.environment != 'dev' && always()
run: rm -f private.gpg public.gpg