20
20
build-test :
21
21
needs : prepare
22
22
name : Build & Test
23
- runs-on : ubuntu-latest
23
+ runs-on : ${{ matrix.os }}
24
24
strategy :
25
25
matrix :
26
+ os :
27
+ - ubuntu-latest
28
+ - ubuntu-24.04-arm
26
29
rust :
27
30
- version : ${{ needs.prepare.outputs.rust_version }}
28
31
clippy : true
@@ -58,13 +61,29 @@ jobs:
58
61
- name : Build + Test
59
62
env :
60
63
MATRIX_RUST_VERSION : ${{ matrix.rust.version }}
64
+ MATRIX_OS : ${{ matrix.os }}
61
65
run : |
62
- if [ $MATRIX_RUST_VERSION = '1.63.0' ]; then
63
- cargo build --workspace --exclude 'example_*' --exclude 'bdk_electrum' ${{ matrix.features }}
64
- cargo test --workspace --exclude 'example_*' --exclude 'bdk_electrum' ${{ matrix.features }}
66
+ if [ "$MATRIX_OS" = "ubuntu-24.04-arm" ]; then
67
+ # On ARM, exclude both electrs-dependent tests and example_* files
68
+ echo "Running on ARM architecture - excluding electrs-dependent tests"
69
+ if [ "$MATRIX_RUST_VERSION" = "1.63.0" ]; then
70
+ cargo build --workspace --exclude 'example_*' --exclude 'bdk_electrum' ${{ matrix.features }}
71
+ # Run tests with --exclude patterns for electrs-dependent tests
72
+ cargo test --workspace --exclude 'example_*' --exclude 'bdk_electrum' --exclude 'bdk_bitcoind_rpc' --exclude 'bdk_testenv' --exclude 'bdk_esplora' ${{ matrix.features }}
73
+ else
74
+ cargo build --workspace --exclude 'example_*' --exclude 'bdk_electrum' ${{ matrix.features }}
75
+ # Run tests with --exclude patterns for electrs-dependent tests
76
+ cargo test --workspace --exclude 'example_*' --exclude 'bdk_electrum' --exclude 'bdk_bitcoind_rpc' --exclude 'bdk_testenv' --exclude 'bdk_esplora' ${{ matrix.features }}
77
+ fi
65
78
else
66
- cargo build --workspace --exclude 'example_*' ${{ matrix.features }}
67
- cargo test --workspace --exclude 'example_*' ${{ matrix.features }}
79
+ # On x86, run tests normally
80
+ if [ "$MATRIX_RUST_VERSION" = "1.63.0" ]; then
81
+ cargo build --workspace --exclude 'example_*' --exclude 'bdk_electrum' ${{ matrix.features }}
82
+ cargo test --workspace --exclude 'example_*' --exclude 'bdk_electrum' ${{ matrix.features }}
83
+ else
84
+ cargo build --workspace --exclude 'example_*' ${{ matrix.features }}
85
+ cargo test --workspace --exclude 'example_*' ${{ matrix.features }}
86
+ fi
68
87
fi
69
88
70
89
check-no-std :
@@ -175,9 +194,12 @@ jobs:
175
194
build-examples :
176
195
needs : prepare
177
196
name : Build & Test Examples
178
- runs-on : ubuntu-latest
197
+ runs-on : ${{ matrix.os }}
179
198
strategy :
180
199
matrix :
200
+ os :
201
+ - ubuntu-latest
202
+ - ubuntu-24.04-arm
181
203
example-dir :
182
204
- example_cli
183
205
- example_bitcoind_rpc_polling
@@ -202,4 +224,13 @@ jobs:
202
224
203
225
- name : Build
204
226
working-directory : example-crates/${{ matrix.example-dir }}
205
- run : cargo build
227
+ env :
228
+ MATRIX_OS : ${{ matrix.os }}
229
+ EXAMPLE_DIR : ${{ matrix.example-dir }}
230
+ run : |
231
+ if [ "$MATRIX_OS" = "ubuntu-24.04-arm" ] && [[ "$EXAMPLE_DIR" == *"electrum"* ]]; then
232
+ echo "Skipping electrum-dependent example on ARM architecture"
233
+ exit 0
234
+ else
235
+ cargo build
236
+ fi
0 commit comments