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,167 @@ 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
+ - run : ls result
116
151
- name : ✨ Publish to Coveralls
117
- uses : coverallsapp/github-action@master
152
+ uses : coverallsapp/github-action@2.3.6
118
153
with :
119
154
github-token : ${{ secrets.GITHUB_TOKEN }}
155
+ format : lcov
156
+ files : result/tests.lcov result/external-cadical.lcov
120
157
# TODO: Kani
121
158
feature-powerset :
122
159
name : 🔌 Test feature powerset
123
- runs-on : self-hosted
160
+ runs-on : [self-hosted, nix]
161
+ needs :
162
+ - dev-deps
124
163
if : contains(github.event.pull_request.labels.*.name, 'heavy-tests')
125
164
steps :
126
165
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
127
166
- name : ✨ Run feature powerset checks
128
- run : just feature-powerset-ci
167
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').featurePowerset"
129
168
cadical-each-feature :
130
169
name : 🧪 CaDiCaL test each feature
131
- runs-on : self-hosted
170
+ runs-on : [self-hosted, nix]
171
+ needs :
172
+ - dev-deps
132
173
if : contains(github.event.pull_request.labels.*.name, 'solvers/cadical')
133
174
steps :
134
175
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
135
176
- name : 🧪 Test each feature
136
- run : just cadical- each-feature-ci
177
+ run : nix develop ".#ci" --command cargo hack -- each-feature --exclude-features logging nextest run -p rustsat-cadical
137
178
kissat-each-feature :
138
179
name : 🧪 Kissat test each feature
139
- runs-on : self-hosted
180
+ runs-on : [self-hosted, nix]
181
+ needs :
182
+ - dev-deps
140
183
if : contains(github.event.pull_request.labels.*.name, 'solvers/kissat')
141
184
steps :
142
185
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
143
186
- name : 🧪 Test each feature
144
- run : just kissat- each-feature-ci
187
+ run : nix develop ".#ci" --command cargo hack -- each-feature nextest run -p rustsat-kissat
145
188
cadical-valgrind :
146
189
name : 🤖 CaDiCaL Valgrind
147
- runs-on : self-hosted
190
+ runs-on : [self-hosted, nix]
191
+ needs :
192
+ - dev-deps
148
193
if : contains(github.event.pull_request.labels.*.name, 'solvers/cadical')
149
194
steps :
150
195
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
151
196
- name : 🧪 Tests through valgrind
152
- run : just cadical-valgrind-ci
197
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').cadicalValgrind"
153
198
kissat-valgrind :
154
199
name : 🤖 Kissat Valgrind
155
- runs-on : self-hosted
200
+ runs-on : [self-hosted, nix]
201
+ needs :
202
+ - dev-deps
156
203
if : contains(github.event.pull_request.labels.*.name, 'solvers/kissat')
157
204
steps :
158
205
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
159
206
- name : 🧪 Tests through valgrind
160
- run : just kissat-valgrind-ci
207
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').kissatValgrind"
161
208
minisat-valgrind :
162
209
name : 🤖 Minisat Valgrind
163
- runs-on : self-hosted
210
+ runs-on : [self-hosted, nix]
211
+ needs :
212
+ - dev-deps
164
213
if : contains(github.event.pull_request.labels.*.name, 'solvers/minisat')
165
214
steps :
166
215
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
167
216
- name : 🧪 Tests through valgrind
168
- run : just minisat-valgrind-ci
217
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').minisatValgrind"
169
218
glucose-valgrind :
170
219
name : 🤖 Glucose Valgrind
171
- runs-on : self-hosted
220
+ runs-on : [self-hosted, nix]
221
+ needs :
222
+ - dev-deps
172
223
if : contains(github.event.pull_request.labels.*.name, 'solvers/glucose')
173
224
steps :
174
225
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
175
226
- name : 🧪 Tests through valgrind
176
- run : just glucose-valgrind-ci
227
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').glucoseValgrind"
177
228
capi-valgrind :
178
229
name : 🤖 C-API Valgrind
179
- runs-on : self-hosted
230
+ runs-on : [self-hosted, nix]
231
+ needs :
232
+ - dev-deps
180
233
if : contains(github.event.pull_request.labels.*.name, 'c-api')
181
234
steps :
182
235
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
183
236
- name : 🧪 Tests through valgrind
184
- run : just capi-valgrind-ci
237
+ run : nix build ".#checks.$(nix eval --impure --expr 'builtins.currentSystem').capiValgrind"
0 commit comments