@@ -25,16 +25,20 @@ jobs:
25
25
- rustsat-kani
26
26
- batsat-tests
27
27
- cadical-tests
28
+ - cadical-test-all-features
28
29
- capi-tests
29
30
- capi-header
30
31
- glucose-tests
31
32
- kissat-tests
33
+ - kissat-test-all-features
32
34
- minisat-tests
35
+ - pigeons-tests
33
36
- pyapi-tests
34
37
- pyapi-stubs
35
38
- tools-tests
36
39
- docs
37
40
- formatting
41
+ - code-spelling
38
42
if : ${{ success() || failure() }} # Run this job even if a dependency has failed.
39
43
steps :
40
44
- name : Job outcomes
@@ -45,16 +49,20 @@ jobs:
45
49
echo "rustsat-kani: ${{ needs.rustsat-kani.result }}"
46
50
echo "batsat-tests: ${{ needs.batsat-tests.result }}"
47
51
echo "cadical-tests: ${{ needs.cadical-tests.result }}"
52
+ echo "cadical-test-all-features: ${{ needs.cadical-test-all-features.result }}"
48
53
echo "capi-tests: ${{ needs.capi-tests.result }}"
49
54
echo "capi-header: ${{ needs.capi-header.result }}"
50
55
echo "glucose-tests: ${{ needs.glucose-tests.result }}"
51
56
echo "kissat-tests: ${{ needs.kissat-tests.result }}"
57
+ echo "kissat-test-all-features: ${{ needs.kissat-test-all-features.result }}"
52
58
echo "minisat-tests: ${{ needs.minisat-tests.result }}"
59
+ echo "pigeons-tests: ${{ needs.pigeons-tests.result }}"
53
60
echo "pyapi-tests: ${{ needs.pyapi-tests.result }}"
54
61
echo "pyapi-stubs: ${{ needs.pyapi-stubs.result }}"
55
62
echo "tools-tests: ${{ needs.tools-tests.result }}"
56
63
echo "docs: ${{ needs.docs.result }}"
57
64
echo "formatting: ${{ needs.formatting.result }}"
65
+ echo "code-spelling: ${{ needs.code-spelling.result }}"
58
66
# Fail this required job if any of its dependent jobs have failed.
59
67
#
60
68
# Do not attempt to consolidate these steps into one step, it won't work.
71
79
run : exit 1
72
80
- if : ${{ needs.cadical-tests.result != 'success' }}
73
81
run : exit 1
82
+ - if : ${{ needs.cadical-test-all-features.result == 'failure' }}
83
+ run : exit 1
74
84
- if : ${{ needs.capi-tests.result != 'success' }}
75
85
run : exit 1
76
86
- if : ${{ needs.capi-header.result != 'success' }}
79
89
run : exit 1
80
90
- if : ${{ needs.kissat-tests.result != 'success' }}
81
91
run : exit 1
92
+ - if : ${{ needs.kissat-test-all-features.result == 'failure' }}
93
+ run : exit 1
82
94
- if : ${{ needs.minisat-tests.result != 'success' }}
83
95
run : exit 1
96
+ - if : ${{ needs.pigeons-tests.result != 'success' }}
97
+ run : exit 1
84
98
- if : ${{ needs.pyapi-tests.result != 'success' }}
85
99
run : exit 1
86
100
- if : ${{ needs.pyapi-stubs.result != 'success' }}
91
105
run : exit 1
92
106
- if : ${{ needs.formatting.result != 'success' }}
93
107
run : exit 1
108
+ - if : ${{ needs.code-spelling.result != 'success' }}
109
+ run : exit 1
94
110
95
111
build-workspace :
96
112
name : Build workspace
@@ -142,6 +158,17 @@ jobs:
142
158
- name : Limit cmake parallelism
143
159
if : matrix.os == 'macos-latest'
144
160
run : echo "CMAKE_BUILD_PARALLEL_LEVEL=4" >> "$GITHUB_ENV"
161
+ - uses : actions/setup-python@v5
162
+ if : matrix.os == 'ubuntu-latest'
163
+ with :
164
+ python-version : 3.12
165
+ - name : Install VeriPB
166
+ if : matrix.os == 'ubuntu-latest'
167
+ run : |
168
+ set -e
169
+ sudo apt-get install libgmp-dev
170
+ pip install https://gitlab.com/MIAOresearch/software/VeriPB/-/archive/version2/VeriPB-version2.zip
171
+ echo "VERIPB_CHECKER=$(which veripb)" >> "$GITHUB_ENV"
145
172
- name : Test suite
146
173
run : cargo nextest run --profile ci -p rustsat --verbose --features=all
147
174
- name : CaDiCaL external solver
@@ -169,8 +196,6 @@ jobs:
169
196
matrix :
170
197
os : [ubuntu-latest, macos-latest, windows-latest]
171
198
runs-on : ${{ matrix.os }}
172
- needs :
173
- - build-workspace
174
199
steps :
175
200
- uses : actions/checkout@v4
176
201
- name : Determine Rust version
@@ -249,6 +274,29 @@ jobs:
249
274
- name : Test suite
250
275
run : cargo nextest run --profile ci -p rustsat-cadical --verbose
251
276
277
+ cadical-test-all-features :
278
+ name : CaDiCaL test all features
279
+ runs-on : ubuntu-latest
280
+ if : contains(github.event.pull_request.labels.*.name, 'solvers/cadical')
281
+ needs :
282
+ - build-workspace
283
+ steps :
284
+ - uses : actions/checkout@v4
285
+ - name : Determine Rust version
286
+ id : rust-versions
287
+ shell : bash
288
+ run : scripts/rust-versions.sh >> "$GITHUB_OUTPUT"
289
+ - uses : dtolnay/rust-toolchain@master
290
+ with :
291
+ toolchain : ${{ steps.rust-versions.outputs.toolchain }}
292
+ - uses : taiki-e/install-action@nextest
293
+ - uses : Swatinem/rust-cache@v2
294
+ with :
295
+ shared-key : " toolchain-workspace"
296
+ save-if : false
297
+ - name : Test all features
298
+ run : scripts/check-all-features.sh -v -t -n -p rustsat-cadical
299
+
252
300
capi-tests :
253
301
name : C-API test suite
254
302
strategy :
@@ -282,8 +330,6 @@ jobs:
282
330
capi-header :
283
331
name : Check C-API header
284
332
runs-on : ubuntu-latest
285
- needs :
286
- - build-workspace
287
333
steps :
288
334
- uses : actions/checkout@v4
289
335
- name : Determine Rust version
@@ -356,6 +402,29 @@ jobs:
356
402
- name : Test suite
357
403
run : cargo nextest run --profile ci -p rustsat-kissat --verbose
358
404
405
+ kissat-test-all-features :
406
+ name : Kissat test all features
407
+ runs-on : ubuntu-latest
408
+ if : contains(github.event.pull_request.labels.*.name, 'solvers/kissat')
409
+ needs :
410
+ - build-workspace
411
+ steps :
412
+ - uses : actions/checkout@v4
413
+ - name : Determine Rust version
414
+ id : rust-versions
415
+ shell : bash
416
+ run : scripts/rust-versions.sh >> "$GITHUB_OUTPUT"
417
+ - uses : dtolnay/rust-toolchain@master
418
+ with :
419
+ toolchain : ${{ steps.rust-versions.outputs.toolchain }}
420
+ - uses : taiki-e/install-action@nextest
421
+ - uses : Swatinem/rust-cache@v2
422
+ with :
423
+ shared-key : " toolchain-workspace"
424
+ save-if : false
425
+ - name : Test all features
426
+ run : scripts/check-all-features.sh -v -t -n -p rustsat-kissat
427
+
359
428
minisat-tests :
360
429
name : MiniSat test suite
361
430
strategy :
@@ -381,6 +450,42 @@ jobs:
381
450
- name : Test suite
382
451
run : cargo nextest run --profile ci -p rustsat-minisat --verbose
383
452
453
+ pigeons-tests :
454
+ name : Pigeons test suite
455
+ strategy :
456
+ matrix :
457
+ os : [ubuntu-latest, macos-latest, windows-latest]
458
+ runs-on : ${{ matrix.os }}
459
+ needs :
460
+ - build-workspace
461
+ steps :
462
+ - uses : actions/checkout@v4
463
+ - name : Determine Rust version
464
+ id : rust-versions
465
+ shell : bash
466
+ run : scripts/rust-versions.sh >> "$GITHUB_OUTPUT"
467
+ - uses : dtolnay/rust-toolchain@master
468
+ with :
469
+ toolchain : ${{ steps.rust-versions.outputs.toolchain }}
470
+ - uses : taiki-e/install-action@nextest
471
+ - uses : Swatinem/rust-cache@v2
472
+ with :
473
+ shared-key : " toolchain-workspace"
474
+ save-if : false
475
+ - name : Set up Python
476
+ uses : actions/setup-python@v5
477
+ with :
478
+ python-version : 3.12
479
+ - name : Install VeriPB
480
+ if : matrix.os == 'ubuntu-latest'
481
+ run : |
482
+ set -e
483
+ sudo apt-get install libgmp-dev
484
+ pip install https://gitlab.com/MIAOresearch/software/VeriPB/-/archive/version2/VeriPB-version2.zip
485
+ echo "VERIPB_CHECKER=$(which veripb)" >> "$GITHUB_ENV"
486
+ - name : Test suite
487
+ run : cargo nextest run --profile ci -p pigeons --verbose
488
+
384
489
pyapi-tests :
385
490
name : PyAPI test suite
386
491
strategy :
@@ -465,17 +570,17 @@ jobs:
465
570
id : rust-versions
466
571
shell : bash
467
572
run : scripts/rust-versions.sh >> "$GITHUB_OUTPUT"
468
- - uses : dtolnay/rust-toolchain@master
469
- with :
470
- toolchain : ${{ steps.rust-versions.outputs.toolchain }}
573
+ - uses : dtolnay/rust-toolchain@nightly
471
574
- uses : Swatinem/rust-cache@v2
472
575
with :
473
576
shared-key : " toolchain-workspace"
474
577
save-if : false
475
578
- name : Cargo doc
476
- run : cargo doc --workspace --verbose --no-deps --features=all
579
+ run : cargo +nightly doc -Zunstable-options -Zrustdoc-scrape-examples --workspace --no-deps --features=all,internals
580
+ env :
581
+ RUSTDOCFLAGS : " -Dwarnings --cfg docsrs"
477
582
- name : Doc tests
478
- run : cargo test --doc --workspace --verbose
583
+ run : cargo +nightly test --doc --workspace --verbose
479
584
- uses : taiki-e/install-action@cargo-spellcheck
480
585
- name : Spellcheck documentation
481
586
run : cargo spellcheck --code 1
@@ -514,3 +619,10 @@ jobs:
514
619
- uses : Swatinem/rust-cache@v2
515
620
- name : Run cargo fmt
516
621
run : cargo fmt --all -- --check
622
+
623
+ code-spelling :
624
+ name : Spell check with typos
625
+ runs-on : ubuntu-latest
626
+ steps :
627
+ - uses : actions/checkout@v4
628
+ -
uses :
crate-ci/[email protected]
0 commit comments