* feat(infra): backend cookiecutter template with fastapi tortoise * feat(infra): cli cookiecutter template with typer entry point * feat(infra): fullstack cookiecutter template with sveltekit frontend * test(infra): cookiecutter template tests and render fixes * style(infra): ruff cleanup for cookiecutter template tests * style(infra): ruff format cookiecutter template tests * fix(infra): handle use_db no use_auth no in cookiecutter --------- Co-authored-by: opencode-agent <agent@opencode.local>
54 lines
No EOL
1.3 KiB
YAML
54 lines
No EOL
1.3 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
backend-lint:
|
|
runs-on: ubuntu-latest
|
|
defaults: { run: { working-directory: backend } }
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: astral-sh/setup-uv@v3
|
|
- run: uv sync --extra dev
|
|
- run: uv run ruff check .
|
|
- run: uv run ruff format --check .
|
|
|
|
backend-typecheck:
|
|
runs-on: ubuntu-latest
|
|
defaults: { run: { working-directory: backend } }
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: astral-sh/setup-uv@v3
|
|
- run: uv sync --extra dev
|
|
- run: uv run mypy src tests
|
|
|
|
backend-test:
|
|
runs-on: ubuntu-latest
|
|
defaults: { run: { working-directory: backend } }
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: astral-sh/setup-uv@v3
|
|
- run: uv sync --extra dev
|
|
- run: uv run pytest
|
|
|
|
frontend-test:
|
|
runs-on: ubuntu-latest
|
|
defaults: { run: { working-directory: frontend } }
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with: { node-version: '20' }
|
|
- run: npm install
|
|
- run: npm run lint
|
|
- run: npm test
|
|
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
needs: [backend-lint, backend-typecheck, backend-test, frontend-test]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: echo "All checks passed" |