Skip to content

[workflows] add firebase initial workflow #19

[workflows] add firebase initial workflow

[workflows] add firebase initial workflow #19

name: Build and Sign IIAB APKs
on:
push:
branches: [ "main", "master" ]
tags:
- 'v*'
workflow_dispatch:
jobs:
build:
name: Build Release APKs
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./controller
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
submodules: recursive
# We use Java 17, in sync with build.gradle
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
cache: 'gradle'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Decode Keystore
env:
ENCODED_STRING: ${{ secrets.KEYSTORE_BASE64 }}
run: |
# Decode the Base64 string back into a temporary physical .jks file
echo $ENCODED_STRING | base64 -d > keystore.jks
- name: Build and Sign Release APKs
env:
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
# Run assembleRelease injecting the signature, skipping store.properties
run: |
./gradlew assembleRelease \
-Pandroid.injected.signing.store.file=$(pwd)/keystore.jks \
-Pandroid.injected.signing.store.password=$KEYSTORE_PASSWORD \
-Pandroid.injected.signing.key.alias=$KEY_ALIAS \
-Pandroid.injected.signing.key.password=$KEY_PASSWORD
- name: Upload APK Artifacts
uses: actions/upload-artifact@v4
with:
name: iiab-apks-release
# The asterisk (*) will catch the 3 files: universal, arm64-v8a and armeabi-v7a
path: controller/**/build/outputs/apk/release/*.apk
retention-days: 7
# Only if this pipeline was triggered by a Tag, we create the Release
- name: Create GitHub Release
if: startsWith(github.ref, 'refs/tags/v')
uses: softprops/action-gh-release@v2
with:
# Automatically marks the version as Pre-release if your tag ends in "-beta" or "-rc"
prerelease: ${{ contains(github.ref, '-beta') || contains(github.ref, '-rc') }}
files: controller/**/build/outputs/apk/release/*.apk
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Cleanup Keystore
if: always()
run: rm -f keystore.jks