19
19
- msrv-build
20
20
- code-quality
21
21
- python-api
22
- - docs
22
+ - doc
23
23
- cadical-each-feature
24
24
- kissat-each-feature
25
25
- cadical-valgrind
35
35
echo "🏗️ MSRV build: ${{ needs.msrv-build.result }}"
36
36
echo "✨ Code Quality: ${{ needs.code-quality.result }}"
37
37
echo "🐍 Python API: ${{ needs.python-api.result }}"
38
- echo "📑 Check documentation: ${{ needs.docs .result }}"
38
+ echo "📑 Check documentation: ${{ needs.doc .result }}"
39
39
echo "🧪 CaDiCaL test each feature: ${{ needs.cadical-each-feature.result }}"
40
40
echo "🧪 Kissat test each feature: ${{ needs.kissat-each-feature.result }}"
41
41
echo "🤖 CaDiCaL Valgrind: ${{ needs.cadical-valgrind.result }}"
55
55
run : exit 1
56
56
- if : ${{ needs.python-api.result != 'success' }}
57
57
run : exit 1
58
- - if : ${{ needs.docs .result != 'success' }}
58
+ - if : ${{ needs.doc .result != 'success' }}
59
59
run : exit 1
60
60
- if : ${{ needs.cadical-each-feature.result == 'failure' }}
61
61
run : exit 1
@@ -71,114 +71,166 @@ jobs:
71
71
run : exit 1
72
72
- if : ${{ needs.capi-valgrind.result == 'failure' }}
73
73
run : exit 1
74
+ dev-deps :
75
+ name : 🏗️ Dev dependencies
76
+ runs-on : [self-hosted, nix]
77
+ steps :
78
+ - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
79
+ - name : 🏗️ Build dev dependencies
80
+ run : nix build .#devDeps
74
81
tests :
75
82
name : 🧪 Workspace tests
76
- runs-on : self-hosted
83
+ runs-on : [self-hosted, nix]
84
+ needs :
85
+ - dev-deps
77
86
steps :
78
87
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
79
88
- name : 🧪 Run tests
80
- run : just test-ci
89
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').tests"
90
+ - name : 🧪 Run tests for external solver CaDiCaL
91
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').externalCadical"
92
+ - name : 🧪 Run tests for external solver Kissat
93
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').externalKissat"
94
+ - name : 🧪 Run tests for external solver Gimsatul
95
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').externalGimsatul"
81
96
msrv-build :
82
97
name : 🏗️ MSRV build
83
- runs-on : self-hosted
98
+ runs-on : [ self-hosted, nix]
84
99
steps :
85
100
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
86
- - name : 🏗️ Build
87
- run : just msrv-ci
101
+ - name : 🏗️ Check MSRV builds
102
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').msrv"
88
103
code-quality :
89
104
name : ✨ Code Quality
90
- runs-on : self-hosted
105
+ runs-on : [self-hosted, nix]
106
+ needs :
107
+ - dev-deps
91
108
steps :
92
109
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
93
- - name : ✨ Run code quality checks
94
- run : just code-quality-ci
110
+ - name : ✨ Check formatting
111
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').treefmt"
112
+ - name : ✨ Check typos
113
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').typos"
114
+ - name : ✨ Check spelling
115
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').spellcheck"
116
+ - name : ✨ Check generated readmes
117
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').readmes"
118
+ - name : ✨ Check generated code
119
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').codegen"
95
120
python-api :
96
121
name : 🐍 Python API
97
- runs-on : self-hosted
122
+ runs-on : [ self-hosted, nix]
98
123
steps :
99
124
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
100
- - name : ✨ Run Python API checks
101
- run : just python-api-ci
102
- docs :
125
+ - uses : actions/checkout@v4
126
+ - name : ✨ Build Python API and check
127
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').pyapi"
128
+ doc :
103
129
name : 📑 Check documentation
104
- runs-on : self-hosted
130
+ runs-on : [self-hosted, nix]
131
+ needs :
132
+ - dev-deps
105
133
steps :
106
134
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
107
- - name : ✨ Run docs checks
108
- run : just docs-ci
135
+ - uses : actions/checkout@v4
136
+ - name : ✨ Build doc
137
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').doc"
138
+ - name : 🧪 Run doc tests
139
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').docTests"
109
140
coverage :
110
141
name : 📋 Test coverage
111
- runs-on : self-hosted
142
+ runs-on : [self-hosted, nix]
143
+ needs :
144
+ - tests
145
+ - doc
112
146
steps :
113
147
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
114
- - name : ✨ Generate coverage report
115
- run : just coverage-ci
148
+ - name : ✨ Collect coverage reports
149
+ run : nix build .#testCoverage
150
+ - name : Move coverage files out of symlink
151
+ run : mkdir -p coverage && cp result/*.lcov coverage && rm result
116
152
- name : ✨ Publish to Coveralls
117
- uses : coverallsapp/github-action@master
153
+ uses : coverallsapp/github-action@v2.3.6
118
154
with :
119
155
github-token : ${{ secrets.GITHUB_TOKEN }}
120
156
# TODO: Kani
121
157
feature-powerset :
122
158
name : 🔌 Test feature powerset
123
- runs-on : self-hosted
159
+ runs-on : [self-hosted, nix]
160
+ needs :
161
+ - dev-deps
124
162
if : contains(github.event.pull_request.labels.*.name, 'heavy-tests')
125
163
steps :
126
164
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
127
165
- name : ✨ Run feature powerset checks
128
- run : just feature-powerset-ci
166
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').featurePowerset"
129
167
cadical-each-feature :
130
168
name : 🧪 CaDiCaL test each feature
131
- runs-on : self-hosted
169
+ runs-on : [self-hosted, nix]
170
+ needs :
171
+ - dev-deps
132
172
if : contains(github.event.pull_request.labels.*.name, 'solvers/cadical')
133
173
steps :
134
174
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
135
175
- name : 🧪 Test each feature
136
- run : just cadical- each-feature-ci
176
+ run : nix develop ".#ci" --command cargo hack -- each-feature --exclude-features logging nextest run -p rustsat-cadical
137
177
kissat-each-feature :
138
178
name : 🧪 Kissat test each feature
139
- runs-on : self-hosted
179
+ runs-on : [self-hosted, nix]
180
+ needs :
181
+ - dev-deps
140
182
if : contains(github.event.pull_request.labels.*.name, 'solvers/kissat')
141
183
steps :
142
184
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
143
185
- name : 🧪 Test each feature
144
- run : just kissat- each-feature-ci
186
+ run : nix develop ".#ci" --command cargo hack -- each-feature nextest run -p rustsat-kissat
145
187
cadical-valgrind :
146
188
name : 🤖 CaDiCaL Valgrind
147
- runs-on : self-hosted
189
+ runs-on : [self-hosted, nix]
190
+ needs :
191
+ - dev-deps
148
192
if : contains(github.event.pull_request.labels.*.name, 'solvers/cadical')
149
193
steps :
150
194
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
151
195
- name : 🧪 Tests through valgrind
152
- run : just cadical-valgrind-ci
196
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').cadicalValgrind"
153
197
kissat-valgrind :
154
198
name : 🤖 Kissat Valgrind
155
- runs-on : self-hosted
199
+ runs-on : [self-hosted, nix]
200
+ needs :
201
+ - dev-deps
156
202
if : contains(github.event.pull_request.labels.*.name, 'solvers/kissat')
157
203
steps :
158
204
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
159
205
- name : 🧪 Tests through valgrind
160
- run : just kissat-valgrind-ci
206
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').kissatValgrind"
161
207
minisat-valgrind :
162
208
name : 🤖 Minisat Valgrind
163
- runs-on : self-hosted
209
+ runs-on : [self-hosted, nix]
210
+ needs :
211
+ - dev-deps
164
212
if : contains(github.event.pull_request.labels.*.name, 'solvers/minisat')
165
213
steps :
166
214
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
167
215
- name : 🧪 Tests through valgrind
168
- run : just minisat-valgrind-ci
216
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').minisatValgrind"
169
217
glucose-valgrind :
170
218
name : 🤖 Glucose Valgrind
171
- runs-on : self-hosted
219
+ runs-on : [self-hosted, nix]
220
+ needs :
221
+ - dev-deps
172
222
if : contains(github.event.pull_request.labels.*.name, 'solvers/glucose')
173
223
steps :
174
224
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
175
225
- name : 🧪 Tests through valgrind
176
- run : just glucose-valgrind-ci
226
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').glucoseValgrind"
177
227
capi-valgrind :
178
228
name : 🤖 C-API Valgrind
179
- runs-on : self-hosted
229
+ runs-on : [self-hosted, nix]
230
+ needs :
231
+ - dev-deps
180
232
if : contains(github.event.pull_request.labels.*.name, 'c-api')
181
233
steps :
182
234
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
183
235
- name : 🧪 Tests through valgrind
184
- run : just capi-valgrind-ci
236
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').capiValgrind"
0 commit comments