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:
@@ -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
|
||||
Reference in New Issue
Block a user