name: Android on: release: types: [published] workflow_dispatch: jobs: build-android: runs-on: debian-latest permissions: contents: read releases: write steps: - uses: actions/checkout@v4 with: submodules: recursive - uses: actions/setup-java@v4 with: distribution: temurin java-version: 21 - uses: android-actions/setup-android@v3 # Gitea's act resolver cannot peel the annotated v4 tag alias. - uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a # v4.4.3 - name: Install Android SDK packages run: sdkmanager "platforms;android-35" "build-tools;35.0.0" - name: Lint and test working-directory: android run: ./gradlew --no-daemon lintDebug testDebugUnitTest - name: Build signed release APK working-directory: android env: ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} ORG_GRADLE_PROJECT_transuiStorePassword: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} ORG_GRADLE_PROJECT_transuiKeyAlias: ${{ secrets.ANDROID_KEY_ALIAS }} ORG_GRADLE_PROJECT_transuiKeyPassword: ${{ secrets.ANDROID_KEY_PASSWORD }} run: | if [ -z "$ANDROID_KEYSTORE_BASE64" ]; then echo "Release signing secrets are not configured; skipping release APK" exit 0 fi keystore="$RUNNER_TEMP/transui-release.jks" printf '%s' "$ANDROID_KEYSTORE_BASE64" | base64 --decode > "$keystore" export ORG_GRADLE_PROJECT_transuiKeystore="$keystore" ./gradlew --no-daemon assembleRelease - name: Prepare APK artifacts working-directory: android run: | mkdir -p ../artifacts if [ -f app/build/outputs/apk/release/app-release.apk ]; then cp app/build/outputs/apk/release/app-release.apk ../artifacts/transui-android-release.apk cd ../artifacts sha256sum ./*.apk > SHA256SUMS-android else echo "No release APK to publish" fi - name: Attach APKs to the Gitea release if: gitea.event_name == 'release' env: GITEA_SERVER_URL: ${{ gitea.server_url }} GITEA_REPOSITORY: ${{ gitea.repository }} GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} GITEA_RELEASE_TAG: ${{ gitea.event.release.tag_name }} run: scripts/publish-release-assets.sh - name: Upload APKs if: always() uses: christopherhx/gitea-upload-artifact@v4 with: name: transui-android path: artifacts/ if-no-files-found: warn