E9 live MOTIS pipeline #23
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: E9 live MOTIS pipeline | |
| on: | |
| schedule: | |
| # Weekly on Mondays at 04:17 UTC. Off-hours so a slow Docker pull | |
| # doesn't compete with the regular CI run. | |
| - cron: "17 4 * * 1" | |
| # A MOTIS pin bump MUST run the live canary: the route-details endpoint the | |
| # transit UI depends on is experimental upstream. `check-toolchain-pins` | |
| # forces every pin location to match MOTIS_VERSION in transitous-core's | |
| # constants.ts, so that single file is a reliable bump detector. | |
| push: | |
| branches: [main] | |
| paths: | |
| - packages/transitous-core/src/constants.ts | |
| pull_request: | |
| paths: | |
| - packages/transitous-core/src/constants.ts | |
| workflow_dispatch: | |
| concurrency: | |
| group: e9-live-motis-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: false | |
| permissions: | |
| contents: read | |
| jobs: | |
| e9-live-motis: | |
| name: data-manager transitous pipeline against motis-staging | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 25 | |
| env: | |
| TURBO_TELEMETRY_DISABLED: "1" | |
| OPENMAPX_E9_LIVE_MOTIS: "true" | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6 | |
| - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6 | |
| with: | |
| node-version-file: .nvmrc | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: "3.12" | |
| cache: pip | |
| cache-dependency-path: services/motis/tools/transitous/requirements.txt | |
| - name: Install Transitous Python deps | |
| # The pipeline's feed-proxy config renderer runs host python3 and imports | |
| # ruamel.yaml (via gen-full-config). In production these ship in the | |
| # data-manager image; this canary runs the pipeline directly on the | |
| # runner, so install the same requirements here — otherwise config | |
| # generation catches the missing module and refuses an unproxied config. | |
| run: python3 -m pip install -r services/motis/tools/transitous/requirements.txt | |
| - name: Pre-pull motis image | |
| # Pulling here (rather than letting the test do it) gives us a | |
| # clean error if the registry is unreachable, separate from a | |
| # legitimate pipeline failure. | |
| run: | | |
| docker pull ghcr.io/motis-project/motis:2.10.2 | |
| docker pull nginx:1.27-alpine | |
| - name: Run live MOTIS pipeline test | |
| # Runs from the repo root against the single root Vitest config; the | |
| # positional arg filters to the one matching test file. | |
| run: pnpm exec vitest run pipeline-live-motis | |
| - name: Upload data-manager logs on failure | |
| if: failure() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| with: | |
| name: e9-live-motis-logs | |
| path: | | |
| services/data-manager/__tests__/transitous/**/*.log | |
| /tmp/openmapx-e9-live-*/ | |
| if-no-files-found: ignore | |
| retention-days: 7 |