Merge pull request #684 from Cairo-Squad/fix/blur-for-api-26 #284
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: Movio CD Pipeline | |
| on: | |
| push: | |
| branches: | |
| - develop | |
| - master | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'zulu' | |
| java-version: '21' | |
| - name: Cache Gradle | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| gradle-${{ runner.os }}- | |
| - name: Make gradlew executable | |
| run: chmod +x ./gradlew | |
| - name: Create google-services.json | |
| env: | |
| GOOGLE_SERVICES_JSON_BASE64: ${{ secrets.GOOGLE_SERVICES_JSON_BASE64 }} | |
| run: | | |
| mkdir -p app/ # Ensure the directory exists | |
| echo "$GOOGLE_SERVICES_JSON_BASE64" | base64 --decode > app/google-services.json | |
| shell: bash | |
| - name: Decode Keystore and Create local.properties | |
| env: | |
| KEYSTORE: ${{ secrets.KEYSTORE }} | |
| KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} | |
| KEY_ALIAS: ${{ secrets.KEY_ALIAS }} | |
| KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} | |
| MOVIES_API_KEY: ${{ secrets.MOVIES_API_KEY }} | |
| IMAGE_BASE_URL: ${{secrets.IMAGE_BASE_URL}} | |
| run: | | |
| rm -f app/movio-cairo.jks local.properties release_notes.txt | |
| echo "$KEYSTORE" | base64 -d > app/movio-cairo.jks | |
| echo "BASE_URL = \"https://api.themoviedb.org/3/\"" >> local.properties | |
| echo "KEYSTORE_PASSWORD = $KEYSTORE_PASSWORD" >> local.properties | |
| echo "KEY_ALIAS = $KEY_ALIAS" >> local.properties | |
| echo "KEY_PASSWORD = $KEY_PASSWORD" >> local.properties | |
| echo "API_KEY = \"$MOVIES_API_KEY\"" >> local.properties | |
| echo "IMAGE_BASE_URL = \"$IMAGE_BASE_URL\"" >> local.properties | |
| - name: Generate Signed APK | |
| env: | |
| KEYSTORE: ${{ secrets.KEYSTORE }} | |
| KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} | |
| KEY_ALIAS: ${{ secrets.KEY_ALIAS }} | |
| KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} | |
| MOVIES_API_KEY: ${{ secrets.MOVIES_API_KEY }} | |
| run: | | |
| ./gradlew assembleRelease --build-cache -x test -x lint | |
| ls -l app/build/outputs/apk/release/app-release.apk || { echo "apk not generated"; exit 1; } | |
| - name: Extract Release Notes | |
| id: release_notes | |
| run: | | |
| COMMIT_MSG=$(git log -1 --pretty=%B | sed 's/"/\\"/g' | tr -d '\n') | |
| TRUNCATED_MSG="${COMMIT_MSG:0:500}" | |
| echo "$TRUNCATED_MSG" > release_notes.txt | |
| echo "notes=$TRUNCATED_MSG" >> $GITHUB_OUTPUT | |
| echo "Release notes: $TRUNCATED_MSG" | |
| - name: Upload APKs to Firebase App Distribution | |
| env: | |
| FIREBASE_APP_ID: ${{ secrets.FIREBASE_APP_ID }} | |
| FIREBASE_AUTH_TOKEN: ${{ secrets.FIREBASE_AUTH_TOKEN }} | |
| run: | | |
| npm install -g firebase-tools | |
| firebase appdistribution:distribute \ | |
| app/build/outputs/apk/release/app-release.apk \ | |
| --app "$FIREBASE_APP_ID" \ | |
| --token "$FIREBASE_AUTH_TOKEN" \ | |
| --groups "cairo_squad" \ | |
| --release-notes-file release_notes.txt |