immersive-home/.github/workflows/build-prod.yml
2024-03-17 18:35:00 +01:00

82 lines
3.0 KiB
YAML

# Build the Android APK on push to the master branch
name: Build Release APK
on:
push:
tags:
- "v*"
- "!v*-test"
env:
GODOT_VERSION: 4.2
EXPORT_NAME: immersive-home
GODOT_ANDROID_KEYSTORE_RELEASE_PATH: /home/runner/work/Immersive-Home/Immersive-Home/release.keystore
GODOT_ANDROID_KEYSTORE_RELEASE_USER: ${{ secrets.RELEASE_USER }}
GODOT_ANDROID_KEYSTORE_RELEASE_PASSWORD: ${{ secrets.RELEASE_PASSWORD }}
jobs:
# job id, can be anything
export_game:
# Always use ubuntu-latest for this action
runs-on: ubuntu-latest
# Add permission for release creation. Can be made narrower according to your needs
permissions: write-all
# Job name, can be anything
name: Export Game
steps:
# Always include the checkout step so that
# your project is available for Godot to export
- name: checkout
uses: actions/checkout@v3.3.0
with:
lfs: true
fetch-depth: 0
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: "17"
distribution: "temurin"
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Setup Android Export
run: |
sdkmanager "build-tools;32.0.0"
echo "${{ secrets.KEYSTORE_RELEASE }}" | base64 -di > release.keystore
mkdir -p ./android/build
touch ./android/build/.gdignore
wget -nv https://downloads.tuxfamily.org/godotengine/4.1.3/Godot_v4.1.3-stable_export_templates.tpz -O ./godot_templates.tpz
unzip -q ./godot_templates.tpz -d .
rm ./godot_templates.tpz
unzip -q ./templates/android_source.zip -d ./android/build/
rm ./templates/android_source.zip
sed -i 's/singleInstancePerTask/singleTask/g' ./android/build/AndroidManifest.xml
versioncode=$(eval "cat export_presets.cfg | grep version/code | tail -1 | cut -d'=' -f2")
sed -i "s/android:versionCode=\"1\"/android:versionCode=\"$versioncode\"/g" ./android/build/AndroidManifest.xml
sed -i "s/android:versionName=\"1.0\"/android:versionName=\"${{ github.ref_name }}\"/g" ./android/build/AndroidManifest.xml
- name: export game
id: export
# Use latest version (see releases for all versions)
uses: nitwel/godot-export@latest
with:
# Defining all the required inputs
godot_executable_download_url: https://downloads.tuxfamily.org/godotengine/4.2/Godot_v4.2-stable_linux.x86_64.zip
godot_export_templates_download_url: https://downloads.tuxfamily.org/godotengine/4.2/Godot_v4.2-stable_export_templates.tpz
relative_project_path: ./
archive_output: true
filter_exports: "AndroidProduction"
- name: create release
uses: ncipollo/release-action@v1.11.2
with:
token: ${{ secrets.GITHUB_TOKEN }}
generateReleaseNotes: true
artifacts: ${{ steps.export.outputs.archive_directory }}/* # Added "/*" at the end is glob pattern match for this action