2026-02-01 09:31:38 +01:00

69 lines
1.5 KiB
YAML

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
frontend:
name: Frontend (Next.js)
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./chartbastan
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: ./chartbastan/package-lock.json
- name: Install dependencies
run: npm ci
- name: Run ESLint
run: npm run lint
- name: Run TypeScript type-check
run: npx tsc --noEmit
- name: Build Next.js
run: npm run build
backend:
name: Backend (FastAPI)
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./backend
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
cache-dependency-path: ./backend/requirements.txt
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run Flake8 (linting)
run: flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
- name: Run Black (formatting check)
run: black --check .
- name: Run Pytest
run: pytest tests/ -v || echo "No tests yet or tests failed"