name: CI on: push: branches: [ main ] pull_request: branches: [ main ] env: CARGO_TERM_COLOR: always jobs: fmt: name: Format runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - run: cargo fmt --all -- --config format_code_in_doc_comments=true --check build: name: Build runs-on: ubuntu-latest strategy: matrix: rust: - version: stable build-args: [ -p cdk, -p cdk --no-default-features, -p cdk --no-default-features --features wallet, -p cdk --no-default-features --features mint, -p cdk-redb, -p cdk-sqlite, -p cdk-axum, -p cdk-cln, -p cdk-lnd, -p cdk-phoenixd, -p cdk-strike, -p cdk-lnbits -p cdk-integration-tests, -p cdk-fake-wallet, --bin cdk-cli, --bin cdk-mintd, ] steps: - name: Checkout uses: actions/checkout@v3 - name: Cache uses: actions/cache@v3 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }} - name: Install protobuf run: sudo apt-get install -y protobuf-compiler - name: Set default toolchain run: rustup default ${{ matrix.rust.version }} - name: Set profile run: rustup set profile minimal && rustup component add clippy - name: Build run: cargo build ${{ matrix.build-args }} - name: Clippy run: cargo clippy ${{ matrix.build-args }} -- -D warnings build-wasm: name: Build WASM runs-on: ubuntu-latest strategy: matrix: rust: - version: stable build-args: [ -p cdk, -p cdk --no-default-features, -p cdk --no-default-features --features wallet, -p cdk-js ] steps: - name: Checkout uses: actions/checkout@v3 - name: Cache uses: actions/cache@v3 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-wasm32-${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }} - name: Set default toolchain run: rustup default ${{ matrix.rust.version }} - name: Add WASM run: rustup target add wasm32-unknown-unknown - name: Set profile run: rustup set profile minimal && rustup component add clippy - name: Build run: cargo build ${{ matrix.build-args }} --target wasm32-unknown-unknown - name: Clippy run: cargo clippy ${{ matrix.build-args }} --target wasm32-unknown-unknown -- -D warnings run-examples: name: Run Examples runs-on: ubuntu-latest strategy: matrix: rust: - version: stable build-args: [ mint-token, p2pk, proof-selection, wallet ] steps: - name: Checkout uses: actions/checkout@v3 - name: Cache uses: actions/cache@v3 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-wasm32-${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }} - name: Set default toolchain run: rustup default ${{ matrix.rust.version }} - name: Run run: cargo run --example ${{ matrix.build-args }}