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 cashu, -p cashu --no-default-features, -p cashu --no-default-features --features wallet, -p cashu --no-default-features --features mint, -p cashu-sdk, -p cashu-sdk --no-default-features, -p cashu-sdk --features blocking, ] 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: 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 cashu, -p cashu-sdk, ] 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