fix: split pipeline into 4 workflows for cross-node scheduling

Multi-workflow with local-path storage + mismatchLabelKeys anti-affinity
forces each workflow onto a different cluster node:
- test: lint + pytest + vitest (node A)
- build-1: scheduler, symbol-registry, ingestion, parser (node B)
- build-2: extractor, aggregation, recommendation, risk (node C)
- build-3: broker-adapter, lake-publisher, query-api, trading-engine, dashboard, superset (node D)
- finalize: integration-test + github mirror (any available node)
This commit is contained in:
Celes Renata
2026-04-20 03:31:50 +00:00
parent 9850dc45b1
commit c81e17f527
6 changed files with 696 additions and 789 deletions
+52
View File
@@ -0,0 +1,52 @@
# Workflow 1: Lint and tests (node A)
when:
event: [push, pull_request]
steps:
lint-python:
image: registry.celestium.life/dockerhub-cache/library/python:3.12-slim
commands:
- pip install ruff==0.15.10 --quiet
- ruff --version
- ruff check --output-format=concise .
backend_options:
kubernetes:
resources:
requests:
memory: 256Mi
cpu: 200m
limits:
memory: 512Mi
cpu: 1000m
test-python:
image: registry.celestium.life/dockerhub-cache/library/python:3.12-slim
commands:
- pip install -r requirements.txt --quiet
- pip install hypothesis --quiet
- pytest tests/ -x --tb=short -q --ignore=tests/integration
backend_options:
kubernetes:
resources:
requests:
memory: 512Mi
cpu: 500m
limits:
memory: 1Gi
cpu: 2000m
test-frontend:
image: registry.celestium.life/dockerhub-cache/library/node:24-slim
commands:
- cd frontend
- npm ci
- npx vitest --run
backend_options:
kubernetes:
resources:
requests:
memory: 512Mi
cpu: 500m
limits:
memory: 1Gi
cpu: 2000m