From b7fcff24a4fcda91866a82d1acc113962b6aaea0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathieu=20M=C3=A9a?= Date: Tue, 25 Aug 2026 14:31:07 -0400 Subject: [PATCH 1/3] Testing mtransitapps/commons#766 --- .github/workflows/mt-record-screenshots.yml | 87 ++++++++++++++++++--- 1 file changed, 77 insertions(+), 10 deletions(-) diff --git a/.github/workflows/mt-record-screenshots.yml b/.github/workflows/mt-record-screenshots.yml index ab176840..26516187 100644 --- a/.github/workflows/mt-record-screenshots.yml +++ b/.github/workflows/mt-record-screenshots.yml @@ -36,6 +36,9 @@ env: MT_IS_AGENCY_REPO: ${{ ! contains(fromJSON('["mtransitapps/commons", "mtransitapps/commons-java", "mtransitapps/parser", "mtransitapps/commons-android"]'), github.repository) && ! endsWith(github.repository, '/mtransit-for-android')}} MT_IS_AGENCY_RDS: ${{ ! contains(github.repository, '-bike-') }} MT_IS_AGENCY_BIKE: ${{ contains(github.repository, '-bike-') }} + # modules to install for screenshots (one per line: pkg:repo_url) + MT_MODULES: | + org.mtransit.android.ca_montreal_amt_train:https://github.com/mtransitapps/ca-montreal-amt-train-android # git commit & push MT_ORG_GIT_COMMIT_ON: ${{ secrets.MT_ORG_GIT_COMMIT_ON }} MT_ORG_GIT_COMMIT_OFF: ${{ secrets.MT_ORG_GIT_COMMIT_OFF }} @@ -45,7 +48,7 @@ jobs: MT-RECORD-SCREENSHOTS-JOB: name: "MT record screenshots" # if: ${{ env.MT_IS_MAIN_REPO != 'true' }} # can NOT use env here: - if: ${{ ! endsWith(github.repository, '/mtransit-for-android') && github.event_name != 'pull_request' }} + if: ${{ github.event_name != 'pull_request' }} timeout-minutes: 30 runs-on: ubuntu-latest steps: @@ -72,6 +75,7 @@ jobs: - name: MT download main app release APK id: download-main-apk + if: ${{ env.MT_IS_MAIN_REPO != 'true' }} run: | source ./download_latest_apk.sh "mtransitapps/mtransit-for-android" if [[ -z "$APK_FILE" ]]; then @@ -84,7 +88,7 @@ jobs: GH_TOKEN: ${{ secrets.MT_PAT }} - name: MT download this app release APK - id: download-module-apk + id: download-this-repo-apk if: github.event.inputs.buildFromSource != 'true' continue-on-error: true run: | @@ -95,14 +99,24 @@ jobs: echo "WARNING: no APK file!" exit 1 # triggers fallback step fi - echo "MODULE_APK_FILE=$APK_FILE" >> $GITHUB_OUTPUT - echo "Module app APK downloaded successfully." + if [[ "$MT_IS_MAIN_REPO" == "true" ]]; then + echo "MAIN_APK_FILE=$APK_FILE" >> $GITHUB_OUTPUT + echo "Main app APK downloaded successfully." + else + MODULE_PACKAGE=$(cat "config/pkg") + if [[ -z "$MODULE_PACKAGE" ]]; then + echo "ERROR: package name not found in config/pkg" + exit 1 + fi + echo "MODULE_APK_FILES=${MODULE_PACKAGE}:${APK_FILE}" >> $GITHUB_OUTPUT + echo "Module app APK downloaded successfully." + fi env: GH_TOKEN: ${{ secrets.MT_PAT }} - name: MT build this app release APK (fallback) - if: steps.download-module-apk.outcome == 'failure' || github.event.inputs.buildFromSource == 'true' - id: build-module-apk + if: steps.download-this-repo-apk.outcome == 'failure' || github.event.inputs.buildFromSource == 'true' + id: build-this-repo-apk env: MT_ENCRYPT_KEY: ${{ secrets.MT_ENCRYPT_KEY }} run: | @@ -127,12 +141,65 @@ jobs: echo "ERROR: APK file not found in ./app-android/build/outputs/apk/release/" exit 1 fi - echo "MODULE_APK_FILE=$APK_FILE" >> $GITHUB_OUTPUT - echo "Module app APK assembled successfully at: $APK_FILE" + if [[ "$MT_IS_MAIN_REPO" == "true" ]]; then + echo "MAIN_APK_FILE=$APK_FILE" >> $GITHUB_OUTPUT + echo "Main app APK assembled successfully at: $APK_FILE" + else + MODULE_PACKAGE=$(cat "config/pkg") + if [[ -z "$MODULE_PACKAGE" ]]; then + echo "ERROR: package name not found in config/pkg" + exit 1 + fi + echo "MODULE_APK_FILES=${MODULE_PACKAGE}:${APK_FILE}" >> $GITHUB_OUTPUT + echo "Module app APK assembled successfully at: $APK_FILE" + fi + + - name: MT validate main repo requires modules env var + if: ${{ env.MT_IS_MAIN_REPO == 'true' && env.MT_MODULES == '' }} + run: | + echo "ERROR: MT_MODULES env var is required when running for the main repo!" + echo "Expected format: one 'pkg:repo_url' per line." + exit 1 + + - name: MT download module APKs + id: download-modules-apks + if: ${{ env.MT_MODULES != '' }} + run: | + MANIFEST_FILE="module_apks_manifest.txt" + > "$MANIFEST_FILE" + while IFS= read -r MODULE_LINE; do + [ -z "$MODULE_LINE" ] && continue + PKG="${MODULE_LINE%%:*}" + REPO="${MODULE_LINE#*:}" + if [[ -z "$PKG" || -z "$REPO" || "$PKG" == "$REPO" ]]; then + echo "ERROR: invalid MT_MODULES line '$MODULE_LINE' (expected pkg:repo_url)." + exit 1 + fi + echo "Downloading APK for '$PKG' from '$REPO'..." + source ./download_latest_apk.sh "$REPO" + if [[ -z "$APK_FILE" ]]; then + echo "ERROR: no APK file for '$PKG' from '$REPO'!" + exit 1 + fi + echo "${PKG}:${APK_FILE}" >> "$MANIFEST_FILE" + echo " Module '$PKG' downloaded: $APK_FILE" + done <<< "$MT_MODULES" + { + echo "MODULE_APK_FILES<> $GITHUB_OUTPUT + echo "All module APKs downloaded." - name: MT read timezone from XML resource value id: timezone run: | + if [[ "$MT_IS_MAIN_REPO" == "true" ]]; then + echo "Main repo detected: using America/Montreal timezone." + echo "TIMEZONE=America/Montreal" >> $GITHUB_OUTPUT + exit 0 + fi + command -v "xmllint" >/dev/null 2>&1 || (sudo apt-get update && sudo apt-get install -y "libxml2-utils") GTFS_TIMEZONE_XML_FILE="app-android/src/main/res/values/gtfs_rts_values_gen.xml" BIKE_TIMEZONE_XML_FILE="app-android/src/main/res/values/bike_station_values.xml" @@ -163,8 +230,8 @@ jobs: timeout-minutes: 10 env: TZ: ${{ steps.timezone.outputs.TIMEZONE || 'UTC' }} - MAIN_APK_FILE: ${{ steps.download-main-apk.outputs.MAIN_APK_FILE }} - MODULE_APK_FILE: ${{ steps.download-module-apk.outputs.MODULE_APK_FILE || steps.build-module-apk.outputs.MODULE_APK_FILE }} + MAIN_APK_FILE: ${{ steps.download-main-apk.outputs.MAIN_APK_FILE || steps.download-this-repo-apk.outputs.MAIN_APK_FILE || steps.build-this-repo-apk.outputs.MAIN_APK_FILE }} + MODULE_APK_FILES: ${{ steps.download-modules-apks.outputs.MODULE_APK_FILES || steps.download-this-repo-apk.outputs.MODULE_APK_FILES || steps.build-this-repo-apk.outputs.MODULE_APK_FILES }} with: api-level: ${{ steps.sdk-target.outputs.API_LEVEL }} target: google_apis From 68f2ba210fc169532c95445fca0202516f41b729 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathieu=20M=C3=A9a?= Date: Tue, 25 Aug 2026 14:36:23 -0400 Subject: [PATCH 2/3] Sync code --- .github/workflows/mt-record-screenshots.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/mt-record-screenshots.yml b/.github/workflows/mt-record-screenshots.yml index 26516187..fb6e5b3f 100644 --- a/.github/workflows/mt-record-screenshots.yml +++ b/.github/workflows/mt-record-screenshots.yml @@ -190,6 +190,8 @@ jobs: echo "EOF" } >> $GITHUB_OUTPUT echo "All module APKs downloaded." + env: + GH_TOKEN: ${{ secrets.MT_PAT }} - name: MT read timezone from XML resource value id: timezone From 330ee00c6b0761be463f2be5469d532ae6ee9b07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathieu=20M=C3=A9a?= Date: Thu, 3 Sep 2026 19:10:37 -0400 Subject: [PATCH 3/3] wip --- .github/workflows/mt-record-screenshots.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/mt-record-screenshots.yml b/.github/workflows/mt-record-screenshots.yml index fb6e5b3f..e4d5230d 100644 --- a/.github/workflows/mt-record-screenshots.yml +++ b/.github/workflows/mt-record-screenshots.yml @@ -39,6 +39,7 @@ env: # modules to install for screenshots (one per line: pkg:repo_url) MT_MODULES: | org.mtransit.android.ca_montreal_amt_train:https://github.com/mtransitapps/ca-montreal-amt-train-android + org.mtransit.android.ca_montreal_stm_subway:https://github.com/mtransitapps/ca-montreal-stm-subway-android # git commit & push MT_ORG_GIT_COMMIT_ON: ${{ secrets.MT_ORG_GIT_COMMIT_ON }} MT_ORG_GIT_COMMIT_OFF: ${{ secrets.MT_ORG_GIT_COMMIT_OFF }}