Repository navigation
55 lines (52 loc) · 1.76 KB
/
Copy pathci.yml
File metadata and controls
55 lines (52 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
backend:
name: Backend (ruff + docker build)
runs-on: ubuntu-latest
steps:
# Actions are pinned to full commit SHAs (tags are mutable).
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: '3.12.15'
- name: Install uv
uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
with:
version: '0.11.7'
- name: Install dependencies (incl. dev for ruff)
run: uv sync --frozen
- name: Ruff lint
run: uv run --no-sync ruff check app/ tests/ scripts/
- name: Docker build smoke
run: |
docker compose --env-file .env.example config -q || true
docker build -t openstudy:ci-smoke .
frontend:
name: Frontend (tsc)
runs-on: ubuntu-latest
defaults:
run:
working-directory: web
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install pnpm
uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0
with:
# Version comes from web/package.json#packageManager (pnpm@10.33.0).
package_json_file: web/package.json
- name: Set up Node
uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: '24.22.1'
cache: 'pnpm'
cache-dependency-path: 'web/pnpm-lock.yaml'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Type-check
run: pnpm exec tsc -b