Skip to content

Commit 1d5d11f

Browse files
ci: sync CI workflow
1 parent 9609fd2 commit 1d5d11f

1 file changed

Lines changed: 92 additions & 4 deletions

File tree

.github/workflows/ci.yml

Lines changed: 92 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ permissions:
1818
contents: read
1919

2020
jobs:
21-
checks:
21+
lint:
2222
runs-on: ubuntu-latest
2323

2424
steps:
@@ -42,14 +42,102 @@ jobs:
4242
- name: Install dependencies
4343
run: just sync
4444

45-
- name: Run type checks
46-
run: just type-check
47-
4845
- name: Run linter
4946
run: just lint-check
5047

48+
format:
49+
runs-on: ubuntu-latest
50+
51+
steps:
52+
- name: Checkout
53+
uses: actions/checkout@v6
54+
55+
- name: Set up Python
56+
uses: actions/setup-python@v6
57+
with:
58+
python-version-file: .python-version
59+
60+
- name: Install uv
61+
uses: astral-sh/setup-uv@v8.2.0
62+
with:
63+
version: "latest"
64+
enable-cache: true
65+
66+
- name: Install just
67+
uses: extractions/setup-just@v4
68+
69+
- name: Install dependencies
70+
run: just sync
71+
5172
- name: Run formatter
5273
run: just format-check
5374

75+
type-check:
76+
runs-on: ubuntu-latest
77+
78+
steps:
79+
- name: Checkout
80+
uses: actions/checkout@v6
81+
82+
- name: Set up Python
83+
uses: actions/setup-python@v6
84+
with:
85+
python-version-file: .python-version
86+
87+
- name: Install uv
88+
uses: astral-sh/setup-uv@v8.2.0
89+
with:
90+
version: "latest"
91+
enable-cache: true
92+
93+
- name: Install just
94+
uses: extractions/setup-just@v4
95+
96+
- name: Install dependencies
97+
run: just sync
98+
99+
- name: Run type checks
100+
run: just type-check
101+
102+
test:
103+
runs-on: ubuntu-latest
104+
105+
steps:
106+
- name: Checkout
107+
uses: actions/checkout@v6
108+
109+
- name: Set up Python
110+
uses: actions/setup-python@v6
111+
with:
112+
python-version-file: .python-version
113+
114+
- name: Install uv
115+
uses: astral-sh/setup-uv@v8.2.0
116+
with:
117+
version: "latest"
118+
enable-cache: true
119+
120+
- name: Install just
121+
uses: extractions/setup-just@v4
122+
123+
- name: Install dependencies
124+
run: just sync
125+
54126
- name: Run tests
55127
run: just test
128+
129+
checks:
130+
if: always()
131+
needs: [lint, format, type-check, test]
132+
runs-on: ubuntu-latest
133+
134+
steps:
135+
- name: Verify all checks passed
136+
run: |
137+
if [[ "${{ needs.lint.result }}" != "success" || \
138+
"${{ needs.format.result }}" != "success" || \
139+
"${{ needs['type-check'].result }}" != "success" || \
140+
"${{ needs.test.result }}" != "success" ]]; then
141+
echo "One or more checks failed"
142+
exit 1
143+
fi

0 commit comments

Comments
 (0)