15
15
id : read_toolchain
16
16
run : echo "rust_version=$(cat rust-version)" >> $GITHUB_OUTPUT
17
17
18
- build-test :
18
+ build-check :
19
19
needs : prepare
20
- name : Build and test
20
+ name : Build & Check
21
21
runs-on : ubuntu-latest
22
22
strategy :
23
23
matrix :
@@ -40,38 +40,84 @@ jobs:
40
40
profile : minimal
41
41
- name : Rust Cache
42
42
43
- - name : Pin dependencies for MSRV
43
+ - name : Pin dependencies for 1.75
44
+ if : matrix.rust.version == '1.75.0'
44
45
run : |
45
- if [ "${{matrix.rust.version}}" = '1.63.0' ]; then
46
- cargo update -p zstd-sys --precise "2.0.8+zstd.1.5.5"
47
- cargo update -p time --precise "0.3.20"
48
- cargo update -p home --precise "0.5.5"
49
- cargo update -p proptest --precise "1.2.0"
50
- cargo update -p url --precise "2.5.0"
51
- cargo update -p cc --precise "1.0.105"
52
- cargo update -p tokio --precise "1.38.1"
53
- cargo update -p tokio-util --precise "0.7.11"
54
- cargo update -p indexmap --precise "2.5.0"
55
- cargo update -p security-framework-sys --precise "2.11.1"
56
- cargo update -p csv --precise "1.3.0"
57
- cargo update -p unicode-width --precise "0.1.13"
58
- elif [ "${{matrix.rust.version}}" = '1.75.0' ]; then
59
- cargo update -p home --precise "0.5.9"
60
- fi
61
- - name : Build
46
+ cargo update -p home --precise "0.5.9"
47
+ - name : Pin dependencies for MSRV
48
+ if : matrix.rust.version == '1.63.0'
49
+ run : ./ci/pin-msrv.sh
50
+ - name : Build + Check
62
51
run : |
63
52
if [ "${{matrix.rust.version}}" = '1.63.0' ]; then
64
53
cargo build --workspace --exclude 'example_*' --exclude 'bdk_electrum' ${{ matrix.features }}
54
+ cargo check --workspace --exclude 'example_*' --exclude 'bdk_electrum' ${{ matrix.features }}
65
55
else
66
56
cargo build --workspace --exclude 'example_*' ${{ matrix.features }}
57
+ cargo check --workspace --exclude 'example_*' ${{ matrix.features }}
67
58
fi
68
- - name : Test
59
+
60
+ test-bdk :
61
+ needs : prepare
62
+ name : Test BDK
63
+ runs-on : ubuntu-latest
64
+ strategy :
65
+ matrix :
66
+ rust :
67
+ - version : ${{ needs.prepare.outputs.rust_version }}
68
+ - version : 1.63.0 # MSRV
69
+ features :
70
+ - --no-default-features --features miniscript/no-std
71
+ - --all-features
72
+ steps :
73
+ - name : checkout
74
+ uses : actions/checkout@v4
75
+ - name : Install Rust toolchain
76
+ uses : dtolnay/rust-toolchain@v1
77
+ with :
78
+ toolchain : ${{ matrix.rust.version }}
79
+ - name : Rust Cache
80
+
81
+ - name : Pin dependencies for MSRV
82
+ if : matrix.rust.version == '1.63.0'
83
+ run : ./ci/pin-msrv.sh
84
+ - name : Test library
69
85
run : |
70
- if [ "${{matrix.rust.version}}" = '1.63.0' ]; then
71
- cargo test --workspace --exclude 'example_*' --exclude 'bdk_electrum' ${{ matrix.features }}
72
- else
73
- cargo test --workspace --exclude 'example_*' ${{ matrix.features }}
74
- fi
86
+ cargo test -p bdk_core ${{ matrix.features }}
87
+ cargo test -p bdk_chain ${{ matrix.features }}
88
+ cargo test -p bdk_bitcoind_rpc ${{ matrix.features }} -- --test-threads=2
89
+ cargo test -p bdk_esplora ${{ matrix.features }} -- --test-threads=2
90
+ cargo test -p bdk_file_store ${{ matrix.features }}
91
+ cargo test -p bdk_testenv ${{ matrix.features }} -- --test-threads=2
92
+ cargo test -p bdk_wallet ${{ matrix.features }}
93
+
94
+ test-electrum :
95
+ needs : prepare
96
+ name : Test `bdk_electrum`
97
+ runs-on : ubuntu-latest
98
+ strategy :
99
+ matrix :
100
+ rust :
101
+ - version : ${{ needs.prepare.outputs.rust_version }}
102
+ - version : 1.75.0 # MSRV
103
+ features :
104
+ - --no-default-features --features miniscript/no-std
105
+ - --all-features
106
+ steps :
107
+ - name : checkout
108
+ uses : actions/checkout@v4
109
+ - name : Install Rust toolchain
110
+ uses : dtolnay/rust-toolchain@v1
111
+ with :
112
+ toolchain : ${{ matrix.rust.version }}
113
+ - name : Rust Cache
114
+
115
+ - name : Pin dependencies for MSRV
116
+ if : matrix.rust.version == '1.75.0'
117
+ run : |
118
+ cargo update -p home --precise "0.5.9"
119
+ - name : Test electrum
120
+ run : cargo test -p bdk_electrum ${{ matrix.features }} -- --test-threads=2
75
121
76
122
check-no-std :
77
123
needs : prepare
@@ -151,6 +197,7 @@ jobs:
151
197
152
198
clippy_check :
153
199
needs : prepare
200
+ name : Rust clippy
154
201
runs-on : ubuntu-latest
155
202
permissions :
156
203
checks : write
0 commit comments