Merge pull request #37 from Resolum/feature/deployment-configuration #7
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: 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 |