Skip to content

Commit 87e72f3

Browse files
codewizdaveclaude
andcommitted
feat: enhance CI/CD with additional tooling
- Add explicit mypy configuration to pyproject.toml - Add web.yml workflow for Next.js lint, types, and build - Add .pre-commit-config.yaml with ruff and mypy hooks - Add npm to Dependabot for web app dependencies Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent a445406 commit 87e72f3

4 files changed

Lines changed: 117 additions & 1 deletion

File tree

.github/dependabot.yml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
version: 2
55

66
updates:
7-
# Enable version updates for npm
7+
# Enable version updates for Python
88
- package-ecosystem: "pip"
99
directory: "/packages/typemap"
1010
schedule:
@@ -20,6 +20,22 @@ updates:
2020
prefix: "chore"
2121
include: "scope"
2222

23+
# Enable version updates for npm
24+
- package-ecosystem: "npm"
25+
directory: "/apps/web"
26+
schedule:
27+
interval: "weekly"
28+
day: "monday"
29+
time: "09:00"
30+
timezone: "UTC"
31+
open-pull-requests-limit: 10
32+
labels:
33+
- "dependencies"
34+
- "security"
35+
commit-message:
36+
prefix: "chore"
37+
include: "scope"
38+
2339
# Enable version updates for GitHub Actions
2440
- package-ecosystem: "github-actions"
2541
directory: "/"

.github/workflows/web.yml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: Web
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths:
7+
- 'apps/web/**'
8+
- '.github/workflows/web.yml'
9+
pull_request:
10+
paths:
11+
- 'apps/web/**'
12+
- '.github/workflows/web.yml'
13+
14+
jobs:
15+
lint:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- name: Setup Node.js
21+
uses: actions/setup-node@v4
22+
with:
23+
node-version: '20'
24+
cache: 'npm'
25+
cache-dependency-path: apps/web/package-lock.json
26+
27+
- name: Install dependencies
28+
run: npm ci
29+
working-directory: apps/web
30+
31+
- name: Run lint
32+
run: npm run lint
33+
working-directory: apps/web
34+
35+
types:
36+
runs-on: ubuntu-latest
37+
steps:
38+
- uses: actions/checkout@v4
39+
40+
- name: Setup Node.js
41+
uses: actions/setup-node@v4
42+
with:
43+
node-version: '20'
44+
cache: 'npm'
45+
cache-dependency-path: apps/web/package-lock.json
46+
47+
- name: Install dependencies
48+
run: npm ci
49+
working-directory: apps/web
50+
51+
- name: Type check
52+
run: npm run types:check
53+
working-directory: apps/web
54+
55+
build:
56+
runs-on: ubuntu-latest
57+
needs: [lint, types]
58+
steps:
59+
- uses: actions/checkout@v4
60+
61+
- name: Setup Node.js
62+
uses: actions/setup-node@v4
63+
with:
64+
node-version: '20'
65+
cache: 'npm'
66+
cache-dependency-path: apps/web/package-lock.json
67+
68+
- name: Install dependencies
69+
run: npm ci
70+
working-directory: apps/web
71+
72+
- name: Build
73+
run: npm run build
74+
working-directory: apps/web

.pre-commit-config.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
repos:
2+
- repo: https://github.com/astral-sh/ruff-pre-commit
3+
rev: v0.9.4
4+
hooks:
5+
- id: ruff
6+
- id: ruff-format
7+
- repo: https://github.com/pre-commit/mirrors-mypy
8+
rev: v1.14.0
9+
hooks:
10+
- id: mypy
11+
additional_dependencies:
12+
- typing_extensions>=4.0
13+
exclude: "^tests/"

packages/typemap/pyproject.toml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,16 @@ exclude_lines = [
8181
]
8282
precision = 2
8383
show_missing = true
84+
85+
[tool.mypy]
86+
python_version = "3.14"
87+
warn_return_any = true
88+
warn_unused_configs = true
89+
disallow_untyped_defs = false
90+
warn_unused_ignores = true
91+
strict_optional = true
92+
no_implicit_optional = true
93+
94+
[[tool.mypy.overrides]]
95+
module = "tests.*"
96+
ignore_errors = true

0 commit comments

Comments
 (0)