-
Notifications
You must be signed in to change notification settings - Fork 731
156 lines (127 loc) · 4.47 KB
/
Copy pathbackend-lint.yaml
File metadata and controls
156 lines (127 loc) · 4.47 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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
name: Backend Lint
permissions:
contents: read
on:
pull_request:
paths:
- 'backend/**'
- 'services/**'
jobs:
lint-format:
runs-on: ubuntu-latest
defaults:
run:
shell: bash
working-directory: ./backend
steps:
- name: Check out repository code
uses: actions/checkout@v2
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 20
- name: Install dependencies
run: cd .. && npm install -g corepack@latest && corepack enable pnpm && pnpm i --frozen-lockfile
- name: Check linting
run: pnpm run lint
- name: Check formatting
run: pnpm run format-check
- name: Check typescript
run: pnpm run tsc-check
lint-format-services:
runs-on: ubuntu-latest
defaults:
run:
shell: bash
working-directory: ./services
steps:
- name: Check out repository code
uses: actions/checkout@v2
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 20
- name: Install dependencies
run: cd .. && npm install -g corepack@latest && corepack enable pnpm && pnpm i --frozen-lockfile
- name: Check library linting, format and typescript
run: ./scripts/lint_libs.sh
- name: Check app linting, format and typescript
run: ./scripts/lint_apps.sh
lint-python-git-integration:
runs-on: ubuntu-latest
defaults:
run:
shell: bash
working-directory: ./services/apps/git_integration
steps:
- name: Check out repository code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check for Python file changes
id: changes
run: |
if git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.sha }} | grep -qE "^services/apps/git_integration/.*(\.py|pyproject\.toml|uv\.lock)$"; then
echo "python_changed=true" >> $GITHUB_OUTPUT
else
echo "python_changed=false" >> $GITHUB_OUTPUT
fi
- name: Install uv
if: steps.changes.outputs.python_changed == 'true'
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: "services/apps/git_integration/uv.lock"
- name: Set up Python
if: steps.changes.outputs.python_changed == 'true'
run: uv python install 3.10
- name: Install dependencies
if: steps.changes.outputs.python_changed == 'true'
run: uv sync --group dev --frozen
- name: Check Python linting and formatting
if: steps.changes.outputs.python_changed == 'true'
run: |
uv run ruff check src/ --output-format=github
uv run ruff format --check src/
lint-python-mailing-list-integration:
runs-on: ubuntu-latest
defaults:
run:
shell: bash
working-directory: ./services/apps/mailing_list_integration
steps:
- name: Check out repository code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check for Python file changes
id: changes
run: |
if git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.sha }} | grep -qE "^services/apps/mailing_list_integration/.*(\.py|pyproject\.toml|uv\.lock)$"; then
echo "python_changed=true" >> $GITHUB_OUTPUT
else
echo "python_changed=false" >> $GITHUB_OUTPUT
fi
- name: Install uv
if: steps.changes.outputs.python_changed == 'true'
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: "services/apps/mailing_list_integration/uv.lock"
- name: Set up Python
if: steps.changes.outputs.python_changed == 'true'
run: uv python install 3.13
- name: Install dependencies
if: steps.changes.outputs.python_changed == 'true'
run: uv sync --group dev --frozen
- name: Check Python linting and formatting
if: steps.changes.outputs.python_changed == 'true'
run: |
uv run ruff check src/ --output-format=github
uv run ruff format --check src/
- name: Run tests
if: steps.changes.outputs.python_changed == 'true'
run: uv run pytest src/test/ -v
- name: Skip Python checks
if: steps.changes.outputs.python_changed == 'false'
run: echo "⏭️ No Python files changed, skipping linting checks"