on: workflow_dispatch: push: tags: - 'v*' jobs: build_android: runs-on: android-build steps: - uses: https://source.mapcomplete.org/actions/checkout@v4 with: verbose: true - uses: https://source.mapcomplete.org/actions/setup-android@v3.2.2 with: cmdline-tools-version: 13114758 - name: Decode keystore run: | echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > ./app/release-key.jks pwd echo "Saved release key to ./app/release-key.jks" - name: Grant execute permission to gradlew run: chmod +x ./gradlew - name: Monkeypatch version number run: | echo "--- @capacitor ---" ls @capacitor sed "s/\.\.\/node_modules\///" -i capacitor.settings.gradle - name: Build signed APK run: | ./gradlew --version export ANDROID_SDK_HOME=/home/runner/.android/sdk/ export PATH=$ANDROID_SDK_HOME/tools:$ANDROID_SDK_HOME/platform-tools:$ANDROID_SDK_HOME/:$ANDROID_SDK_HOME/cmdline-tools/latest/tools/bin:$PATH # Those variables are used in MapComplete/android/app/build.gradle export storeFile="./release-key.jks" export storePassword=${{ secrets.KEYSTORE_PASSWORD }} export keyAlias=${{ secrets.KEY_ALIAS }} export keyPassword=${{ secrets.KEY_PASSWORD }} ./gradlew build ./gradlew assembleRelease rm -rf app/build/outputs/apk/release/baselineProfiles rm -rf app/build/outputs/apk/release/output-metadata.json TAG=$( echo ${{ env.GITHUB_REF_NAME }} ) scp app/build/outputs/apk/release/app-release.apk hetzner:~/public/apk/mapcomplete-$TAG.apk ssh hetzner 'rm -f public/apk/mapcomplete-latest.apk && cp "public/apk/$(ls -v public/apk/ | tail -n 1)" public/apk/mapcomplete-latest.apk' # Build versions vor legacy ./scripts/compile_version.shs $TAG 9-PIE 28 ./scripts/compile_version.sh $TAG 10-QUINCE-TART 29 ./scripts/compile_version.sh $TAG 11-RED-VELVET-CAKE 30 ./scripts/compile_version.sh $TAG 12-SNOW-CONE 31 ./scripts/compile_version.sh $TAG 13-TIRAMISU 32 - name: Upload APK to forgejo releases (MapComplete) uses: https://source.mapcomplete.org/actions/forgejo-release@v2.6.0 with: direction: upload url: https://source.mapcomplete.org repo: MapComplete/android-wrapper release-dir: app/build/outputs/apk/release/ release-notes: "Release version ${{ github.ref_name }}" sha: "${{ github.sha }}" tag: "${{ github.ref_name }}" token: ${{ secrets.WRITE_TOKEN }}