Skip to content

Commit 3040869

Browse files
authored
Merge pull request #126 from trykimu/canary
Canary CI/CD Pipeline
2 parents 9467289 + 1e41a5e commit 3040869

File tree

3 files changed

+95
-0
lines changed

3 files changed

+95
-0
lines changed

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
## Summary
2+
<!--Briefly explain the purpose of this PR and the user impact.-->
3+
4+
## Changes
5+
- What changed at a high level?
6+
- Any notable design/architecture decisions?
7+
8+
## Testing
9+
<!--Testing done to ensure it works as intended-->
10+
11+
## Screenshots / Recordings (if UI)
12+
<!--Attach images or short videos/GIFs showcasing changes. -->
13+
14+
## Related Issues
15+
<!-- Link to any relevant issues. Use "Closes #<issue_number>" to automatically close an issue when this PR is merged. -->
16+
Closes #
17+
Refs #
18+
19+
## Breaking Changes
20+
<!--Describe any breaking behavior and required follow-up actions.-->
21+
22+
## Deployment Notes
23+
<!--Mention any infra/config changes (Dockerfiles, docker-compose, Nginx, env vars).-->
24+
25+

.github/workflows/lint.yml

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: Lint and Typecheck
2+
3+
on:
4+
push:
5+
branches: ["**"]
6+
pull_request:
7+
branches: ["**"]
8+
9+
jobs:
10+
frontend:
11+
name: Frontend ESLint and TS
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v4
16+
17+
- name: Setup pnpm
18+
uses: pnpm/action-setup@v4
19+
with:
20+
version: 9
21+
run_install: false
22+
23+
- name: Setup Node
24+
uses: actions/setup-node@v4
25+
with:
26+
node-version: 'lts/*'
27+
cache: 'pnpm'
28+
29+
- name: Install deps
30+
run: pnpm install --frozen-lockfile
31+
32+
- name: Generate router types
33+
run: pnpm run typecheck --noEmit
34+
35+
- name: TypeScript typecheck (tsc)
36+
run: pnpm run typecheck --noEmit
37+
38+
- name: ESLint
39+
run: pnpm eslint . --ext .ts,.tsx
40+
41+
backend:
42+
name: Backend Ruff and mypy
43+
runs-on: ubuntu-latest
44+
defaults:
45+
run:
46+
working-directory: backend
47+
steps:
48+
- name: Checkout
49+
uses: actions/checkout@v4
50+
51+
- name: Setup Python (uv)
52+
uses: astral-sh/setup-uv@v5
53+
with:
54+
enable-cache: true
55+
python-version: "3.12"
56+
57+
- name: Install deps (with dev extras)
58+
run: uv sync --extra dev --dev
59+
60+
- name: Ruff check
61+
run: uv run python -m ruff check .
62+
63+
- name: Ruff format (auto-fix)
64+
run: uv run python -m ruff format .
65+
66+
- name: mypy
67+
run: uv run mypy .
68+

backend/pyproject.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ dev = [
2424
[tool.ruff]
2525
target-version = "py312"
2626
line-length = 88
27+
28+
[tool.ruff.lint]
2729
select = ["E", "F", "I", "N", "W", "B", "C4", "UP", "ARG", "SIM", "TCH", "TID", "Q"]
2830
ignore = ["E501", "B008", "F401", "F841", "W293", "ARG001", "N815"]
2931

0 commit comments

Comments
 (0)