name: Android CI on: workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - name: Set Swap Space uses: pierotofy/set-swap-space@master with: swap-size-gb: 10 - uses: actions/checkout@v4 - name: set up JDK 21 uses: actions/setup-java@v4 with: java-version: '21' distribution: 'adopt' java-package: 'jdk' cache: gradle - name: Set up Keystore run: | sudo apt update -y || true sudo apt install -y --no-install-recommends coreutils mkdir -p $RUNNER_TEMP/keystores echo "${{ secrets.SIGNING_KEY }}" | base64 --decode > $RUNNER_TEMP/keystores/keystore.jks - name: Build FOSS APKs run: bash ./gradlew assembleFossRelease - name: Sign FOSS APKs run: | ANDROID_SDK_PATH=$ANDROID_HOME/build-tools/35.0.0/apksigner for apk in app/build/outputs/apk/foss/release/*.apk; do $ANDROID_SDK_PATH sign \ --ks $RUNNER_TEMP/keystores/keystore.jks \ --ks-key-alias ${{ secrets.ALIAS }} \ --ks-pass pass:${{ secrets.KEY_STORE_PASS }} \ --key-pass pass:${{ secrets.KEY_STORE_PASS }} \ --out "$apk" \ "$apk" done - name: Upload FOSS APKs uses: actions/upload-artifact@v4 with: name: Signed FOSS APKs path: app/build/outputs/apk/foss/release/*.apk - name: Delete FOSS APKs run: rm -rf app/build/outputs/apk/foss - name: Build Market APKs run: bash ./gradlew assembleMarketRelease - name: Sign Market APKs run: | ANDROID_SDK_PATH=$ANDROID_HOME/build-tools/35.0.0/apksigner for apk in app/build/outputs/apk/market/release/*.apk; do $ANDROID_SDK_PATH sign \ --ks $RUNNER_TEMP/keystores/keystore.jks \ --ks-key-alias ${{ secrets.ALIAS }} \ --ks-pass pass:${{ secrets.KEY_STORE_PASS }} \ --key-pass pass:${{ secrets.KEY_STORE_PASS }} \ --out "$apk" \ "$apk" done - name: Upload Market APKs uses: actions/upload-artifact@v4 with: name: Signed Market APKs path: app/build/outputs/apk/market/release/*.apk - name: Delete Market APKs run: rm -rf app/build/outputs/apk/market