Skip to content

version bump: 5.1.1 #29

version bump: 5.1.1

version bump: 5.1.1 #29

name: Android upload
on:
push:
branches:
- 'prod'
paths:
- "version"
- "fdroid/*"
- ".github/workflows/upload-android.yml"
- "export_presets.android.example"
env:
WORKING_DIRECTORY: game
ANDROID_SERVICE_ACCOUNT_JSON: ${{ secrets.ANDROID_SERVICE_ACCOUNT_JSON }}
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
ANDROID_KEYSTORE_ALIAS: ${{ secrets.ANDROID_KEYSTORE_ALIAS }}
ANDROID_STORE_PASSWORD: ${{ secrets.ANDROID_STORE_PASSWORD }}
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
ANDROID_KEYSTORE_DEBUG_BASE64: ${{ secrets.ANDROID_KEYSTORE_DEBUG_BASE64 }}
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@v3
- name: Read version number and version code
run: |
echo "VERSION_NAME=$(cat version | cut -f1 -d-)" >> $GITHUB_ENV
echo "VERSION_CODE=$(cat version | cut -f2 -d-)" >> $GITHUB_ENV
- name: Checkout source code
uses: actions/checkout@v3
- name: F-Droid check if changelog exists
run: test -f "metadata/en-US/changelogs/$VERSION_CODE.txt"
- name: F-Droid check if versions are correct in fdroid/export_presets.cfg
run: |
grep -Fxq "version/code=$VERSION_CODE" fdroid/export_presets.cfg
grep -Fxq "version/name=\"$VERSION_NAME\"" fdroid/export_presets.cfg
- name: Create changelog text for Github releases
id: changelog
run: |
r=$(cat metadata/en-US/changelogs/$VERSION_CODE.txt)
r="${r//'%'/'%25'}" # Multiline escape sequences for %
r="${r//$'\n'/'%0A'}" # Multiline escape sequences for '\n'
r="${r//$'\r'/'%0D'}" # Multiline escape sequences for '\r'
echo "RELEASE_BODY=$r" >> $GITHUB_OUTPUT
- name: Create changelog text for Google Play Store
run: |
mkdir -p distribution/whatsnew
cp metadata/en-US/changelogs/$VERSION_CODE.txt distribution/whatsnew/whatsnew-en-US
- name: Create service-account.json
run: echo $ANDROID_SERVICE_ACCOUNT_JSON > service-account.json
- name: Create keystores
run: |
echo $ANDROID_KEYSTORE_BASE64 | base64 --decode > keystore.keystore
echo $ANDROID_KEYSTORE_DEBUG_BASE64 | base64 --decode > debug.keystore
- name: Create export_presets.cfg and inject values
run: |
cp game/export_presets.android.example game/export_presets.cfg
sed -i "s|VERSION_CODE|$VERSION_CODE|g" $WORKING_DIRECTORY/export_presets.cfg
sed -i "s|VERSION_NAME|$VERSION_NAME|g" $WORKING_DIRECTORY/export_presets.cfg
sed -i "s|KEYSTORE_RELEASE_PATH|$GITHUB_WORKSPACE/keystore.keystore|g" $WORKING_DIRECTORY/export_presets.cfg
sed -i "s|KEYSTORE_DEBUG_PATH|$GITHUB_WORKSPACE/debug.keystore|g" $WORKING_DIRECTORY/export_presets.cfg
sed -i "s|ANDROID_KEYSTORE_ALIAS|$ANDROID_KEYSTORE_ALIAS|g" $WORKING_DIRECTORY/export_presets.cfg
sed -i "s|ANDROID_KEYSTORE_PASSWORD|$ANDROID_KEYSTORE_PASSWORD|g" $WORKING_DIRECTORY/export_presets.cfg
- name: Delete iOS icons
run: rm -rf $WORKING_DIRECTORY/AppIcons
# GODOT EXPORT
- name: Godot Android export
uses: dulvui/godot-android-export@v2.0.2
with:
working-directory: $WORKING_DIRECTORY
# # GOOGLE PLAY STORE
- name: Publish to Play Store
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJson: service-account.json
packageName: com.salvai.broomball
releaseFiles: ./PocketBroomball.aab
whatsNewDirectory: distribution/whatsnew
track: 'internal'
status: completed
# GITHUB RELEASES
- name: Bundle aab to apk
run: |
wget -q https://github.com/google/bundletool/releases/download/1.14.0/bundletool-all-1.14.0.jar
java -jar bundletool-all-1.14.0.jar build-apks --bundle=PocketBroomball.aab --output=PocketBroomball.apks \
--ks=keystore.keystore --ks-pass=pass:"$ANDROID_STORE_PASSWORD" --ks-key-alias="$ANDROID_KEYSTORE_ALIAS" \
--key-pass=pass:"$ANDROID_KEYSTORE_PASSWORD" --mode=universal
unzip -p PocketBroomball.apks universal.apk > PocketBroomball.apk
# UPLOAD TO GITHUB RELEASES
- name: Upload binaries to Github release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ./PocketBroomball.apk
asset_name: PocketBroomball.apk
tag: v${{ env.VERSION_NAME }}
overwrite: true
body: ${{ steps.changelog.outputs.RELEASE_BODY }}