1
+ name : Lint
2
+
3
+ on :
4
+ pull_request :
5
+
6
+ jobs :
7
+ lint :
8
+ name : Lint
9
+ runs-on : ubuntu-latest
10
+
11
+ steps :
12
+ - name : Checkout Repo
13
+ uses : actions/checkout@v4
14
+
15
+ - uses : pnpm/action-setup@v4
16
+ with :
17
+ version : 9.15.5
18
+
19
+ - name : Setup Node.js 20
20
+ uses : actions/setup-node@v4
21
+ with :
22
+ node-version : ' 20.x'
23
+ cache : pnpm
24
+
25
+ - name : Configure pnpm
26
+ run : |
27
+ pnpm config set auto-install-peers true
28
+ pnpm config set exclude-links-from-lockfile true
29
+
30
+ - name : Install dependencies
31
+ run : pnpm install --frozen-lockfile
32
+
33
+ - name : Set up Python
34
+ uses : actions/setup-python@v4
35
+ with :
36
+ python-version : ' 3.10'
37
+
38
+ - name : Install and configure Poetry
39
+ uses : snok/install-poetry@v1
40
+ with :
41
+ version : 1.5.1
42
+ virtualenvs-create : true
43
+ virtualenvs-in-project : true
44
+ installer-parallel : true
45
+
46
+ - name : Install Python dependencies
47
+ working-directory : python
48
+ run : |
49
+ poetry install --with dev
50
+ pip install ruff=="0.11.12"
51
+
52
+ - name : Run linting
53
+ run : |
54
+ pnpm run lint
55
+
56
+ - name : Run formatting
57
+ run : |
58
+ pnpm run format
59
+
60
+ - name : Check for uncommitted changes
61
+ run : |
62
+ if [[ -n $(git status --porcelain) ]]; then
63
+ echo "❌ Files are not formatted properly:"
64
+ git status --short
65
+ git diff
66
+ exit 1
67
+ else
68
+ echo "✅ No changes detected."
69
+ fi
0 commit comments