build-test:
needs: prepare
- name: Build and test
+ name: Build & Test
runs-on: ubuntu-latest
strategy:
matrix:
profile: minimal
- name: Rust Cache
uses: Swatinem/rust-cache@v2.7.5
- - name: Pin dependencies for MSRV
+ - name: Pin dependencies for 1.75
+ if: matrix.rust.version == '1.75.0'
run: |
- if [ "${{matrix.rust.version}}" = '1.63.0' ]; then
- cargo update -p zstd-sys --precise "2.0.8+zstd.1.5.5"
- cargo update -p time --precise "0.3.20"
- cargo update -p home --precise "0.5.5"
- cargo update -p proptest --precise "1.2.0"
- cargo update -p url --precise "2.5.0"
- cargo update -p cc --precise "1.0.105"
- cargo update -p tokio --precise "1.38.1"
- cargo update -p tokio-util --precise "0.7.11"
- cargo update -p indexmap --precise "2.5.0"
- cargo update -p security-framework-sys --precise "2.11.1"
- cargo update -p csv --precise "1.3.0"
- cargo update -p unicode-width --precise "0.1.13"
- elif [ "${{matrix.rust.version}}" = '1.75.0' ]; then
- cargo update -p home --precise "0.5.9"
- fi
- - name: Build
+ cargo update -p home --precise "0.5.9"
+ - name: Pin dependencies for MSRV
+ if: matrix.rust.version == '1.63.0'
+ run: ./ci/pin-msrv.sh
+ - name: Build + Test
run: |
if [ "${{matrix.rust.version}}" = '1.63.0' ]; then
cargo build --workspace --exclude 'example_*' --exclude 'bdk_electrum' ${{ matrix.features }}
- else
- cargo build --workspace --exclude 'example_*' ${{ matrix.features }}
- fi
- - name: Test
- run: |
- if [ "${{matrix.rust.version}}" = '1.63.0' ]; then
cargo test --workspace --exclude 'example_*' --exclude 'bdk_electrum' ${{ matrix.features }}
else
+ cargo build --workspace --exclude 'example_*' ${{ matrix.features }}
cargo test --workspace --exclude 'example_*' ${{ matrix.features }}
fi
clippy_check:
needs: prepare
+ name: Rust clippy
runs-on: ubuntu-latest
permissions:
checks: write
The MSRV of `bdk_electrum` is 1.75.0.
-To build with the MSRV you will need to pin dependencies as follows:
-
-```shell
-cargo update -p zstd-sys --precise "2.0.8+zstd.1.5.5"
-cargo update -p time --precise "0.3.20"
-cargo update -p home --precise "0.5.5"
-cargo update -p proptest --precise "1.2.0"
-cargo update -p url --precise "2.5.0"
-cargo update -p cc --precise "1.0.105"
-cargo update -p tokio --precise "1.38.1"
-cargo update -p tokio-util --precise "0.7.11"
-cargo update -p indexmap --precise "2.5.0"
-cargo update -p security-framework-sys --precise "2.11.1"
-cargo update -p csv --precise "1.3.0"
-cargo update -p unicode-width --precise "0.1.13"
-```
+To build with the MSRV of 1.63.0 you will need to pin dependencies by running the [`pin-msrv.sh`](./ci/pin-msrv.sh) script
## License
--- /dev/null
+#!/bin/bash
+
+set -x
+set -euo pipefail
+
+# Pin dependencies for MSRV
+
+# To pin deps, switch toolchain to MSRV and execute the below updates
+
+# cargo clean
+# rustup default 1.63.0
+
+cargo update -p zstd-sys --precise "2.0.8+zstd.1.5.5"
+cargo update -p time --precise "0.3.20"
+cargo update -p home --precise "0.5.5"
+cargo update -p proptest --precise "1.2.0"
+cargo update -p url --precise "2.5.0"
+cargo update -p cc --precise "1.0.105"
+cargo update -p tokio --precise "1.38.1"
+cargo update -p tokio-util --precise "0.7.11"
+cargo update -p indexmap --precise "2.5.0"
+cargo update -p security-framework-sys --precise "2.11.1"
+cargo update -p csv --precise "1.3.0"
+cargo update -p unicode-width --precise "0.1.13"