Skip to content

MT sync code & data #56

MT sync code & data

MT sync code & data #56

# ORIGINAL FILE: https://github.com/mtransitapps/commons/tree/master/shared-overwrite
name: MT sync code & data # download & parse
on:
workflow_dispatch: # manual
schedule:
- cron: '0 12 * * 2' # Tuesdays @ 12pm UTC # WEEKLY https://crontab.guru/#0_12_*_*_2
# gh workflow run mt-sync-code-data.yml --ref <branch>
# gh run list --workflow=mt-sync-code-data.yml
# gh run watch ; gh browse --branch <branch>
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
# 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 }}
MT_GIT_COMMIT_ON: ${{ secrets.MT_GIT_COMMIT_ON }}
MT_GIT_COMMIT_OFF: ${{ secrets.MT_GIT_COMMIT_OFF }}
# push to store
MT_ORG_PUSH_STORE_ON: ${{ secrets.MT_ORG_PUSH_STORE_ON }}
MT_ORG_PUSH_STORE_OFF: ${{ secrets.MT_ORG_PUSH_STORE_OFF }}
MT_PUSH_STORE_ON: ${{ secrets.MT_PUSH_STORE_ON }}
MT_PUSH_STORE_OFF: ${{ secrets.MT_PUSH_STORE_OFF }}
# push to store > alpha
MT_ORG_STORE_ALPHA_ON: ${{ secrets.MT_ORG_STORE_ALPHA_ON }}
MT_ORG_STORE_ALPHA_OFF: ${{ secrets.MT_ORG_STORE_ALPHA_OFF }}
MT_STORE_ALPHA_ON: ${{ secrets.MT_STORE_ALPHA_ON }}
MT_STORE_ALPHA_OFF: ${{ secrets.MT_STORE_ALPHA_OFF }}
# push to store > private beta
MT_ORG_STORE_BETA_PRIVATE_ON: ${{ secrets.MT_ORG_STORE_BETA_PRIVATE_ON }}
MT_ORG_STORE_BETA_PRIVATE_OFF: ${{ secrets.MT_ORG_STORE_BETA_PRIVATE_OFF }}
MT_STORE_BETA_PRIVATE_ON: ${{ secrets.MT_STORE_BETA_PRIVATE_ON }}
MT_STORE_BETA_PRIVATE_OFF: ${{ secrets.MT_STORE_BETA_PRIVATE_OFF }}
# push to store > production
MT_ORG_STORE_PRODUCTION_ON: ${{ secrets.MT_ORG_STORE_PRODUCTION_ON }}
MT_ORG_STORE_PRODUCTION_OFF: ${{ secrets.MT_ORG_STORE_PRODUCTION_OFF }}
MT_STORE_PRODUCTION_ON: ${{ secrets.MT_STORE_PRODUCTION_ON }}
MT_STORE_PRODUCTION_OFF: ${{ secrets.MT_STORE_PRODUCTION_OFF }}
jobs:
MT-SYNC-CODE-DATA-JOB:
name: "MT Sync Code & Data"
# timeout-minutes: 45
timeout-minutes: 90
runs-on: ubuntu-latest
steps:
- name: MT check out main repository code (no submodules)
uses: actions/checkout@v4
with:
submodules: true # required to set right token
token: ${{ secrets.MT_PAT }}
fetch-depth: 0 # fetch all (not required util release build)
- name: MT check out submodules
run: ./checkout_submodules.sh
- name: MT setup MT_GIT_BRANCH env
if: github.event_name != 'pull_request'
run: |
echo "MT_GIT_BRANCH=${GITHUB_REF##*/}" >> $GITHUB_ENV
- name: MT code sync
# if: github.event_name != 'pull_request'
if: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }}
run: ./commons/code_sync.sh
- name: MT code setup
run: ./commons/code_setup.sh
- name: MT set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: MT commit code change
run: ./commit_code_change.sh
- name: MT download & prepare
timeout-minutes: 10
run: ./download_and_prepare.sh
- name: MT parse current
timeout-minutes: 40
run: ./parse_current.sh
- name: MT parse next
timeout-minutes: 40
run: ./parse_next.sh
- name: MT parse list change
run: ./parse_list_change.sh
- name: MT push commits
run: ./push_commits.sh
- name: MT artifact > GTFS files
uses: actions/upload-artifact@v4
if: ${{ !cancelled() }} # even if tests fails
with:
name: gtfs
path: |
agency-parser/input/gtfs.zip
agency-parser/input/gtfs_next.zip
retention-days: 31
- name: MT artifact > GTFS validator results
uses: actions/upload-artifact@v4
if: ${{ !cancelled() }} # even if tests fails
with:
name: gtfs-validator-results
path: |
agency-parser/output/current/
agency-parser/output/next/
- name: MT commit data change
run: ./commit_data_change.sh
- name: MT set app release required (or not)
run: ./set_app_release_required.sh
- name: MT assemble release (APK & ABB)
run: ./assemble_release.sh
env:
GITHUB_TOKEN: ${{ secrets.MT_PAT }}
MT_ENCRYPT_KEY: ${{ secrets.MT_ENCRYPT_KEY }}
- name: MT artifact > app-android > APK & ABB
uses: actions/upload-artifact@v4
with:
name: app-android-apk-bundle
path: |
app-android/build/outputs/apk
app-android/build/outputs/bundle
- name: MT push commits
run: ./push_commits.sh
- name: MT Publish release (?)
run: ./publish_app_release.sh
env:
GITHUB_TOKEN: ${{ secrets.MT_PAT }}
MT_ENCRYPT_KEY: ${{ secrets.MT_ENCRYPT_KEY }}