name: Rust layer CI on: push: paths: - "bdk-ffi/**" pull_request: paths: - "bdk-ffi/**" jobs: build-test: name: "Build and test" runs-on: ubuntu-20.04 defaults: run: working-directory: bdk-ffi strategy: matrix: rust: - version: 1.73.0 clippy: true steps: - name: "Checkout" uses: actions/checkout@v3 - name: "Generate cache key" run: echo "${{ matrix.rust.version }} ${{ matrix.features }}" | tee .cache_key - name: "Cache" uses: actions/cache@v3 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-${{ hashFiles('.cache_key') }}-${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }} - name: "Set default toolchain" run: rustup default ${{ matrix.rust.version }} - name: "Set profile" run: rustup set profile minimal - name: "Add clippy" if: ${{ matrix.rust.clippy }} run: rustup component add clippy - name: "Update toolchain" run: rustup update - name: "Build" run: cargo build - name: "Clippy" if: ${{ matrix.rust.clippy }} run: cargo clippy --all-targets --features "uniffi/bindgen-tests" -- -D warnings - name: "Test" run: CLASSPATH=./tests/jna/jna-5.8.0.jar cargo test --features uniffi/bindgen-tests fmt: name: "Rust fmt" runs-on: ubuntu-20.04 defaults: run: working-directory: bdk-ffi steps: - name: "Checkout" uses: actions/checkout@v3 - name: "Set default toolchain" run: rustup default nightly - name: "Set profile" run: rustup set profile minimal - name: "Add rustfmt" run: rustup component add rustfmt - name: "Update toolchain" run: rustup update - name: "Check fmt" run: cargo fmt --all -- --config format_code_in_doc_comments=true --check