From 87c77dc1fa5c81465c7be76a1248ac4173eb84f2 Mon Sep 17 00:00:00 2001 From: Hermes Date: Mon, 31 Aug 2026 15:05:45 -0500 Subject: [PATCH] ci: bump APK versionCode and timestamp AAB names --- .gitea/workflows/android-build.yml | 39 ++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/android-build.yml b/.gitea/workflows/android-build.yml index 85b2b72..0c32762 100644 --- a/.gitea/workflows/android-build.yml +++ b/.gitea/workflows/android-build.yml @@ -96,6 +96,29 @@ jobs: set -euxo pipefail printf 'sdk.dir=%s/.android/sdk\n' "$HOME" > local.properties + - name: Prepare CI build metadata + id: build_meta + shell: bash + run: | + set -euxo pipefail + timestamp_utc="$(date -u +%Y%m%d-%H%M%S)" + version_code="$(date -u +%s)" + project_name="$(basename "$GITHUB_REPOSITORY")" + python3 - "$version_code" <<'PY' + from pathlib import Path + import re, sys + path = Path('app/build.gradle.kts') + text = path.read_text(encoding='utf-8') + new_text, count = re.subn(r'(\bversionCode\s*=\s*)\d+', rf'\g<1>{sys.argv[1]}', text, count=1) + if count != 1: + raise SystemExit('versionCode not found in app/build.gradle.kts') + path.write_text(new_text, encoding='utf-8') + PY + echo "Using CI versionCode: $version_code" + echo "project_name=$project_name" >> "$GITHUB_OUTPUT" + echo "timestamp_utc=$timestamp_utc" >> "$GITHUB_OUTPUT" + echo "version_code=$version_code" >> "$GITHUB_OUTPUT" + - name: Build debug APK if: github.event_name != 'release' shell: bash @@ -114,6 +137,18 @@ jobs: export ANDROID_HOME="$ANDROID_SDK_ROOT" ./gradlew --no-daemon bundleRelease + - name: Rename release AAB for upload + if: github.event_name == 'release' + id: release_aab + shell: bash + run: | + set -euxo pipefail + aab="$(find app/build/outputs/bundle/release -name '*.aab' | head -n 1)" + renamed="app/build/outputs/bundle/release/${{ steps.build_meta.outputs.project_name }}-${{ steps.build_meta.outputs.timestamp_utc }}-release.aab" + mv -f "$aab" "$renamed" + echo "Renamed release AAB to $(basename "$renamed")" + echo "path=$renamed" >> "$GITHUB_OUTPUT" + - name: Upload debug APK if: github.event_name != 'release' uses: actions/upload-artifact@v3 @@ -130,9 +165,9 @@ jobs: run: | set -euxo pipefail release_id="$(python3 -c 'import json, os; print(json.load(open(os.environ["GITHUB_EVENT_PATH"], encoding="utf-8"))["release"]["id"])')" - aab="$(find app/build/outputs/bundle/release -name '*.aab' | head -n 1)" + aab="${{ steps.release_aab.outputs.path }}" curl --fail-with-body \ --request POST \ - --header "Authorization: token ${GITEA_TOKEN}" \ + --header "Authorization: token ***" \ --form "attachment=@${aab}" \ "${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?name=$(basename "$aab")"