Skip to content

Merge pull request #37 from Resolum/feature/deployment-configuration #7

Merge pull request #37 from Resolum/feature/deployment-configuration

Merge pull request #37 from Resolum/feature/deployment-configuration #7

name: Intiva Firebase App Distribution
on:
push:
branches:
- main
- 'release/**'
release:
types:
- published
workflow_dispatch:
jobs:
distribute:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Create google-services.json
env:
GOOGLE_SERVICES_JSON: ${{ secrets.GOOGLE_SERVICES_JSON }}
run: |
if [ -z "$GOOGLE_SERVICES_JSON" ]; then
echo "Missing GOOGLE_SERVICES_JSON repository secret."
exit 1
fi
echo "$GOOGLE_SERVICES_JSON" > app/google-services.json
jq empty app/google-services.json
- name: Create Firebase service account file
env:
FIREBASE_SERVICE_ACCOUNT: ${{ secrets.FIREBASE_SERVICE_ACCOUNT }}
run: |
if [ -z "$FIREBASE_SERVICE_ACCOUNT" ]; then
echo "Missing FIREBASE_SERVICE_ACCOUNT repository secret."
exit 1
fi
echo "$FIREBASE_SERVICE_ACCOUNT" > firebase-service-account.json
jq empty firebase-service-account.json
- name: Set Firebase credentials
run: |
echo "GOOGLE_APPLICATION_CREDENTIALS=$PWD/firebase-service-account.json" >> $GITHUB_ENV
- name: Decode and create keystore
env:
KEYSTORE_BASE: ${{ secrets.KEYSTORE_BASE }}
run: |
if [ -z "$KEYSTORE_BASE" ]; then
echo "Missing KEYSTORE_BASE repository secret."
exit 1
fi
echo "$KEYSTORE_BASE" | base64 --decode > $HOME/intiva-release.jks
echo "KEYSTORE_FILE_PATH=$HOME/intiva-release.jks" >> $GITHUB_ENV
- name: Grant execute permission to gradlew
run: chmod +x ./gradlew
- name: Build release APK
env:
KEYSTORE_PATH: ${{ env.KEYSTORE_FILE_PATH }}
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
run: ./gradlew assembleRelease
- name: Upload release to Firebase App Distribution
env:
KEYSTORE_PATH: ${{ env.KEYSTORE_FILE_PATH }}
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
run: ./gradlew appDistributionUploadRelease