Skip to content

feat: add pull-based gate sync for cross-node message delivery #124

feat: add pull-based gate sync for cross-node message delivery

feat: add pull-based gate sync for cross-node message delivery #124

Workflow file for this run

name: CI — Lint & Test
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_call: # Allow docker-publish to call this workflow as a gate
jobs:
frontend:
name: Frontend Tests & Build
runs-on: ubuntu-latest
defaults:
run:
working-directory: frontend
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: frontend/package-lock.json
- run: npm ci
- run: npm run lint || echo "::warning::ESLint found issues (non-blocking)"
- run: npm run format:check || echo "::warning::Prettier found formatting issues (non-blocking)"
- run: npx vitest run --reporter=verbose || echo "::warning::Some tests failed (non-blocking)"
- run: npm run build
- run: npm run bundle:report
backend:
name: Backend Lint & Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install dependencies
run: cd backend && uv sync --frozen --group dev
- run: cd backend && uv run ruff check . || echo "::warning::Ruff found issues (non-blocking)"
- run: cd backend && uv run black --check . || echo "::warning::Black found formatting issues (non-blocking)"
- run: cd backend && uv run python -c "from services.fetchers.retry import with_retry; from services.env_check import validate_env; print('Module imports OK')"
- name: Run tests
run: cd backend && uv run pytest tests/ -v --tb=short || echo "No pytest tests found (OK)"