name: Build launcher on: workflow_dispatch: push: branches: '*' jobs: build: strategy: matrix: config: - name: Release lower: release flavor: standard - name: Debug lower: debug flavor: standard - name: Release lower: release flavor: googlePlay runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Setup Java JDK uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 with: java-version: 21 distribution: temurin cache: gradle - name: Generate keystore file run: echo ${{secrets.KEYSTORE_FILE}} | base64 -d > ~/release.keystore - name: Fix gradle permissions run: chmod +x ./gradlew - name: Build project (standard) if: ${{ matrix.config.flavor == 'standard' }} run: | ./gradlew app:assembleStandard${{ matrix.config.name }} \ -Pandroid.injected.signing.store.file="$HOME/release.keystore" \ -Pandroid.injected.signing.store.password="${{secrets.KEYSTORE_PASSWORD}}" \ -Pandroid.injected.signing.key.alias="${{secrets.KEY_ALIAS}}" \ -Pandroid.injected.signing.key.password="${{secrets.KEY_PASSWORD}}" - name: Build project (Google Play) if: ${{ matrix.config.flavor == 'googlePlay' }} run: | ./gradlew app:bundleGooglePlayRelease -PdisableAbiSplits \ -Pandroid.injected.signing.store.file="$HOME/release.keystore" \ -Pandroid.injected.signing.store.password="${{secrets.KEYSTORE_PASSWORD}}" \ -Pandroid.injected.signing.key.alias="${{secrets.KEY_ALIAS}}" \ -Pandroid.injected.signing.key.password="${{secrets.KEY_PASSWORD}}" - name: Rename universal apk id: rename_apk_universal if: ${{ matrix.config.flavor == 'standard' }} run: | SHORT_SHA=${GITHUB_SHA::7} APK_PATH=${{github.workspace}}/app/build/outputs/apk/standard/${{ matrix.config.lower }}/app-standard-universal-${{ matrix.config.lower }}.apk OUT_PATH=${{github.workspace}}/geode-launcher-${{ matrix.config.lower }}-$SHORT_SHA.apk mv $APK_PATH $OUT_PATH echo "path=$OUT_PATH" >> $GITHUB_OUTPUT - name: Rename apk id: rename_apk if: ${{ matrix.config.flavor == 'standard' }} run: | SHORT_SHA=${GITHUB_SHA::7} APK_PATH=${{github.workspace}}/app/build/outputs/apk/standard/${{ matrix.config.lower }}/app-standard-armeabi-v7a-${{ matrix.config.lower }}.apk OUT_PATH=${{github.workspace}}/geode-launcher-${{ matrix.config.lower }}-android32-$SHORT_SHA.apk mv $APK_PATH $OUT_PATH echo "path=$OUT_PATH" >> $GITHUB_OUTPUT - name: Rename mappings id: rename_mappings if: ${{ matrix.config.flavor == 'standard' && matrix.config.lower == 'release' }} run: | SHORT_SHA=${GITHUB_SHA::7} MAPPING_PATH=${{github.workspace}}/app/build/outputs/mapping/standardRelease/mapping.txt OUT_PATH=${{github.workspace}}/mapping-${{ matrix.config.lower }}-$SHORT_SHA.txt mv $MAPPING_PATH $OUT_PATH echo "path=$OUT_PATH" >> $GITHUB_OUTPUT - name: Rename AAB id: rename_aab if: ${{ matrix.config.flavor == 'googlePlay' }} run: | SHORT_SHA=${GITHUB_SHA::7} AAB_PATH=${{github.workspace}}/app/build/outputs/bundle/googlePlayRelease/app-googlePlay-release.aab OUT_PATH=${{github.workspace}}/geode-launcher-${{ matrix.config.lower }}-$SHORT_SHA.aab mv $AAB_PATH $OUT_PATH echo "path=$OUT_PATH" >> $GITHUB_OUTPUT - name: Rename AAB mappings id: rename_aab_mappings if: ${{ matrix.config.flavor == 'googlePlay' }} run: | SHORT_SHA=${GITHUB_SHA::7} MAPPING_PATH=${{github.workspace}}/app/build/outputs/mapping/googlePlayRelease/mapping.txt OUT_PATH=${{github.workspace}}/mapping-${{ matrix.config.lower }}-$SHORT_SHA.txt mv $MAPPING_PATH $OUT_PATH echo "path=$OUT_PATH" >> $GITHUB_OUTPUT - name: Upload release build uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 if: ${{ matrix.config.flavor == 'standard' && matrix.config.lower == 'release' }} with: name: geode-launcher-${{ matrix.config.lower }} path: | ${{ steps.rename_apk_universal.outputs.path }} ${{ steps.rename_apk.outputs.path }} ${{ steps.rename_mappings.outputs.path }} - name: Upload debug build uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 if: ${{ matrix.config.flavor == 'standard' && matrix.config.lower == 'debug' }} with: name: geode-launcher-${{ matrix.config.lower }} path: | ${{ steps.rename_apk_universal.outputs.path }} ${{ steps.rename_apk.outputs.path }} - name: Upload Google Play build uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 if: ${{ matrix.config.flavor == 'googlePlay' }} with: name: geode-launcher-google-play path: | ${{ steps.rename_aab.outputs.path }} ${{ steps.rename_aab_mappings.outputs.path }}