on: [push, pull_request] name: CI jobs: build-test: name: Build and test runs-on: ubuntu-latest strategy: matrix: rust: - version: stable clippy: true - version: 1.57.0 # MSRV features: - --no-default-features - --all-features steps: - name: checkout uses: actions/checkout@v2 - name: Install Rust toolchain uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.rust.version }} override: true profile: minimal - name: Rust Cache uses: Swatinem/rust-cache@v2.2.1 - name: Build run: cargo build ${{ matrix.features }} - name: Test run: cargo test ${{ matrix.features }} check-wasm: name: Check WASM runs-on: ubuntu-20.04 env: CC: clang-10 CFLAGS: -I/usr/include steps: - name: Checkout uses: actions/checkout@v2 # Install a recent version of clang that supports wasm32 - run: wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - || exit 1 - run: sudo apt-add-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-10 main" || exit 1 - run: sudo apt-get update || exit 1 - run: sudo apt-get install -y libclang-common-10-dev clang-10 libc6-dev-i386 || exit 1 - name: Install Rust toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable override: true profile: minimal target: "wasm32-unknown-unknown" - name: Rust Cache uses: Swatinem/rust-cache@v2.2.1 - name: Check bdk working-directory: ./crates/bdk run: cargo check --target wasm32-unknown-unknown --features dev-getrandom-wasm - name: Check esplora working-directory: ./crates/esplora run: cargo check --target wasm32-unknown-unknown --features async --no-default-features fmt: name: Rust fmt runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Install Rust toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable override: true profile: minimal components: rustfmt - name: Check fmt run: cargo fmt --all -- --config format_code_in_doc_comments=true --check clippy_check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: actions-rs/toolchain@v1 with: # we pin clippy instead of using "stable" so that our CI doesn't break # at each new cargo release toolchain: "1.67.0" components: clippy override: true - name: Rust Cache uses: Swatinem/rust-cache@v2.2.1 - uses: actions-rs/clippy-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} args: --all-features --all-targets -- -D warnings