@@ -18,8 +18,21 @@ permissions:
1818 contents : read
1919
2020jobs :
21- lint :
21+ check :
22+ name : ${{ matrix.name }}
2223 runs-on : ubuntu-latest
24+ strategy :
25+ fail-fast : false
26+ matrix :
27+ include :
28+ - name : lint
29+ recipe : lint-check
30+ - name : format
31+ recipe : format-check
32+ - name : type-check
33+ recipe : type-check
34+ - name : test
35+ recipe : test
2336
2437 steps :
2538 - name : Checkout
@@ -42,102 +55,18 @@ jobs:
4255 - name : Install dependencies
4356 run : just sync
4457
45- - name : Run linter
46- run : just lint-check
47-
48- format :
49- runs-on : ubuntu-latest
50-
51- steps :
52- - name : Checkout
53- uses : actions/checkout@v7
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-
72- - name : Run formatter
73- run : just format-check
74-
75- type-check :
76- runs-on : ubuntu-latest
77-
78- steps :
79- - name : Checkout
80- uses : actions/checkout@v7
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@v7
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-
126- - name : Run tests
127- run : just test
58+ - name : Run ${{ matrix.name }}
59+ run : just ${{ matrix.recipe }}
12860
12961 checks :
13062 if : always()
131- needs : [lint, format, type- check, test ]
63+ needs : [check]
13264 runs-on : ubuntu-latest
13365
13466 steps :
13567 - name : Verify all checks passed
13668 run : |
137- if [[ "${{ needs.lint.result }}" != "success" || \
138- "${{ needs.format.result }}" != "success" || \
139- "${{ needs['type-check'].result }}" != "success" || \
140- "${{ needs.test.result }}" != "success" ]]; then
69+ if [[ "${{ needs.check.result }}" != "success" ]]; then
14170 echo "One or more checks failed"
14271 exit 1
14372 fi
0 commit comments