Update signing action and output paths in workflow #2
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: KNUTICE Automated CI CD Pipeline | |
| on: | |
| push: | |
| branches: | |
| - development | |
| - release | |
| jobs: | |
| build-qa-apk: | |
| name: Build Artifact for QA and Test | |
| if: github.ref == 'refs/heads/development' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'zulu' | |
| cache: 'gradle' | |
| - name: Generate Local Properties | |
| env: | |
| ENCODED_PROPERTIES: ${{ secrets.BASE64_LOCAL_PROPERTIES }} | |
| run: echo "$ENCODED_PROPERTIES" | base64 --decode > ./local.properties | |
| - name: Provide Necessary Configuration File. | |
| env: | |
| DATA: ${{ secrets.GOOGLE_SERVICES_JSON }} | |
| run: echo "$DATA" | base64 --decode > app/google-services.json | |
| - name: Grant Execute Permission to Gradlew | |
| run: chmod +x ./gradlew | |
| - name: Build Release APK | |
| run: ./gradlew assembleRelease | |
| - name: Sign Production APK | |
| id: sign_apk | |
| uses: ilharp/sign-android-release@v2 | |
| with: | |
| releaseDirectory: app/build/outputs/apk/release | |
| signingKeyBase64: ${{ secrets.PROD_KEYSTORE_BASE64 }} | |
| alias: ${{ secrets.PROD_KEY_ALIAS }} | |
| keyStorePassword: ${{ secrets.PROD_KEYSTORE_PASSWORD }} | |
| keyPassword: ${{ secrets.PROD_KEY_PASSWORD }} | |
| - name: Upload Generated Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: KNUTICE-QA-APK | |
| path: ${{ steps.sign_apk.outputs.signedFile }} | |
| build-production-aab: | |
| name: Build & Sign Production AAB | |
| if: github.ref == 'refs/heads/release' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'zulu' | |
| cache: 'gradle' | |
| - name: Generate Local Properties | |
| env: | |
| ENCODED_PROPERTIES: ${{ secrets.BASE64_LOCAL_PROPERTIES }} | |
| run: echo "$ENCODED_PROPERTIES" | base64 --decode > ./local.properties | |
| - name: Provide Necessary Configuration File. | |
| env: | |
| DATA: ${{ secrets.GOOGLE_SERVICES_JSON }} | |
| run: echo "$DATA" | base64 --decode > app/google-services.json | |
| - name: Grant Execute Permission to Gradlew | |
| run: chmod +x ./gradlew | |
| - name: Build Release AAB | |
| run: ./gradlew bundleRelease | |
| - name: Sign Production AAB | |
| id: sign_aab | |
| uses: ilharp/sign-android-release@v2 | |
| with: | |
| releaseDirectory: app/build/outputs/bundle/release | |
| signingKeyBase64: ${{ secrets.PROD_KEYSTORE_BASE64 }} | |
| alias: ${{ secrets.PROD_KEY_ALIAS }} | |
| keyStorePassword: ${{ secrets.PROD_KEYSTORE_PASSWORD }} | |
| keyPassword: ${{ secrets.PROD_KEY_PASSWORD }} | |
| - name: Upload Signed Production AAB Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: KNUTICE-Production-AAB | |
| path: ${{ steps.sign_aab.outputs.signedFile }} |