Skip to content

E9 live MOTIS pipeline #23

E9 live MOTIS pipeline

E9 live MOTIS pipeline #23

Workflow file for this run

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