Skip to content

Commit

Permalink
ci: separate check and test jobs
Browse files Browse the repository at this point in the history
- build-test is changed to build-check
- add jobs test-bdk and test-electrum
- add ci/pin-msrv.sh, which pins the dependencies for 1.63.0 MSRV
  • Loading branch information
ValuedMammal authored and oleonardolima committed Jan 21, 2025
1 parent ee71bd3 commit 735c116
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 26 deletions.
99 changes: 73 additions & 26 deletions .github/workflows/cont_integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ jobs:
id: read_toolchain
run: echo "rust_version=$(cat rust-version)" >> $GITHUB_OUTPUT

build-test:
build-check:
needs: prepare
name: Build and test
name: Build & Check
runs-on: ubuntu-latest
strategy:
matrix:
Expand All @@ -40,38 +40,84 @@ jobs:
profile: minimal
- name: Rust Cache
uses: Swatinem/[email protected]
- 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 + Check
run: |
if [ "${{matrix.rust.version}}" = '1.63.0' ]; then
cargo build --workspace --exclude 'example_*' --exclude 'bdk_electrum' ${{ matrix.features }}
cargo check --workspace --exclude 'example_*' --exclude 'bdk_electrum' ${{ matrix.features }}
else
cargo build --workspace --exclude 'example_*' ${{ matrix.features }}
cargo check --workspace --exclude 'example_*' ${{ matrix.features }}
fi
- name: Test
test-bdk:
needs: prepare
name: Test BDK
runs-on: ubuntu-latest
strategy:
matrix:
rust:
- version: ${{ needs.prepare.outputs.rust_version }}
- version: 1.63.0 # MSRV
features:
- --no-default-features --features miniscript/no-std
- --all-features
steps:
- name: checkout
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@v1
with:
toolchain: ${{ matrix.rust.version }}
- name: Rust Cache
uses: Swatinem/[email protected]
- name: Pin dependencies for MSRV
if: matrix.rust.version == '1.63.0'
run: ./ci/pin-msrv.sh
- name: Test library
run: |
if [ "${{matrix.rust.version}}" = '1.63.0' ]; then
cargo test --workspace --exclude 'example_*' --exclude 'bdk_electrum' ${{ matrix.features }}
else
cargo test --workspace --exclude 'example_*' ${{ matrix.features }}
fi
cargo test -p bdk_core ${{ matrix.features }}
cargo test -p bdk_chain ${{ matrix.features }}
cargo test -p bdk_bitcoind_rpc ${{ matrix.features }} -- --test-threads=2
cargo test -p bdk_esplora ${{ matrix.features }} -- --test-threads=2
cargo test -p bdk_file_store ${{ matrix.features }}
cargo test -p bdk_testenv ${{ matrix.features }} -- --test-threads=2
cargo test -p bdk_wallet ${{ matrix.features }}
test-electrum:
needs: prepare
name: Test `bdk_electrum`
runs-on: ubuntu-latest
strategy:
matrix:
rust:
- version: ${{ needs.prepare.outputs.rust_version }}
- version: 1.75.0 # MSRV
features:
- --no-default-features --features miniscript/no-std
- --all-features
steps:
- name: checkout
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@v1
with:
toolchain: ${{ matrix.rust.version }}
- name: Rust Cache
uses: Swatinem/[email protected]
- name: Pin dependencies for MSRV
if: matrix.rust.version == '1.75.0'
run: |
cargo update -p home --precise "0.5.9"
- name: Test electrum
run: cargo test -p bdk_electrum ${{ matrix.features }} -- --test-threads=2

check-no-std:
needs: prepare
Expand Down Expand Up @@ -151,6 +197,7 @@ jobs:

clippy_check:
needs: prepare
name: Rust clippy
runs-on: ubuntu-latest
permissions:
checks: write
Expand Down
24 changes: 24 additions & 0 deletions ci/pin-msrv.sh
Original file line number Diff line number Diff line change
@@ -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"

0 comments on commit 735c116

Please sign in to comment.