# 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.1 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 rm export_presets.cfg mv export_presets_prod.cfg export_presets.cfg mkdir -p ~/.config/godot cp -v ./editor_settings-4.tres ~/.config/godot/ mkdir -p ./android/build touch ./android/build/.gdignore wget -nv https://downloads.tuxfamily.org/godotengine/4.2.1/rc1/Godot_v4.2.1-rc1_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 "git tag | grep -v "test" | wc -l") sed -i "s/BUILD_VERSION_CODE/$versioncode/g" export_presets.cfg sed -i "s/android:versionCode=\"1\"/android:versionCode=\"$versioncode\"/g" ./android/build/AndroidManifest.xml sed -i 's/BUILD_VERSION/${{ github.ref_name }}/g' export_presets.cfg 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: firebelley/godot-export@v5.2.1 with: # Defining all the required inputs godot_executable_download_url: https://downloads.tuxfamily.org/godotengine/4.2.1/rc1/Godot_v4.2-rc1_linux.x86_64.zip godot_export_templates_download_url: https://downloads.tuxfamily.org/godotengine/4.2.1/rc1/Godot_v4.2-rc1_export_templates.tpz relative_project_path: ./ archive_output: true - 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