mirror of
https://github.com/Zproger/Aurum.git
synced 2026-10-13 02:56:39 +07:00
Раньше пул-реквесты никак не проверялись автоматически — сломанный PR можно было смержить, ничего бы не показало проблему. Теперь на каждый PR и пуш в main гоняются 115 backend-тестов (реальный Postgres в сервис- контейнере, та же схема, что и в tests/README.md) и сборка фронтенда (tsc + vite build).
67 lines
2.0 KiB
YAML
67 lines
2.0 KiB
YAML
name: CI
|
|
|
|
# Runs on every pull request and on pushes to main, so a broken PR shows a
|
|
# red check before it's mergeable (enable "Require status checks to pass"
|
|
# in branch protection for main to actually block the merge button on it).
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
backend-tests:
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
# A real Postgres, not sqlite — tests/conftest.py creates/migrates/
|
|
# drops a dedicated aurum_test database against it, same as the local
|
|
# `docker compose exec backend pytest` workflow in tests/README.md.
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
env:
|
|
POSTGRES_USER: aurum
|
|
POSTGRES_PASSWORD: aurum
|
|
POSTGRES_DB: aurum
|
|
ports:
|
|
- 5432:5432
|
|
options: >-
|
|
--health-cmd "pg_isready -U aurum"
|
|
--health-interval 5s
|
|
--health-timeout 5s
|
|
--health-retries 10
|
|
env:
|
|
AURUM_POSTGRES_USER: aurum
|
|
AURUM_POSTGRES_PASSWORD: aurum
|
|
AURUM_POSTGRES_DB: aurum
|
|
AURUM_POSTGRES_HOST: localhost
|
|
AURUM_POSTGRES_PORT: 5432
|
|
defaults:
|
|
run:
|
|
working-directory: backend
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.12"
|
|
cache: pip
|
|
cache-dependency-path: backend/requirements-dev.txt
|
|
- run: pip install -r requirements-dev.txt
|
|
- run: pytest -v
|
|
|
|
frontend-build:
|
|
runs-on: ubuntu-latest
|
|
defaults:
|
|
run:
|
|
working-directory: frontend
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "22"
|
|
cache: npm
|
|
cache-dependency-path: frontend/package-lock.json
|
|
- run: npm ci
|
|
# tsc -b (type-check) then vite build — catches both a broken build
|
|
# and a type error a PR might introduce, same as `npm run build`
|
|
# locally before shipping a change.
|
|
- run: npm run build
|