]> Untitled Git - bdk/commitdiff
ci: add `pin-msrv.sh`
authorvalued mammal <valuedmammal@protonmail.com>
Mon, 20 Jan 2025 16:37:40 +0000 (11:37 -0500)
committerLeonardo Lima <oleonardolima@users.noreply.github.com>
Tue, 21 Jan 2025 19:51:18 +0000 (16:51 -0300)
- add ci/pin-msrv.sh, which pins the dependencies for 1.63.0 MSRV

.github/workflows/cont_integration.yml
README.md
ci/pin-msrv.sh [new file with mode: 0755]

index 6a57c9c5b9f9a3027d03f2f6c1f82af09a4eb940..b9c1664b26cb5154572010704ca2821f35314076 100644 (file)
@@ -17,7 +17,7 @@ jobs:
 
   build-test:
     needs: prepare
-    name: Build and test
+    name: Build & Test
     runs-on: ubuntu-latest
     strategy:
       matrix:
@@ -40,36 +40,20 @@ jobs:
             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
 
@@ -151,6 +135,7 @@ jobs:
 
   clippy_check:
     needs: prepare
+    name: Rust clippy
     runs-on: ubuntu-latest
     permissions:
       checks: write
index 67a65d40c01ca86b0fa5fa57ef2d75393e27c3cf..5ed54e97b933e59530338b185ec443aa4dee4c22 100644 (file)
--- a/README.md
+++ b/README.md
@@ -73,22 +73,7 @@ The BDK library maintains a MSRV of 1.63.0. This includes the following crates
 
 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
 
diff --git a/ci/pin-msrv.sh b/ci/pin-msrv.sh
new file mode 100755 (executable)
index 0000000..07454d5
--- /dev/null
@@ -0,0 +1,24 @@
+#!/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"