diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..f1599c43 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,93 @@ +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 + - version: 1.64.0 #MSRV + 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: Tests + run: cargo test ${{ 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 + - version: 1.64.0 #MSRV + 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 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index dd8ebec8..5f3a2cd8 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -22,7 +22,3 @@ jobs: uses: crate-ci/typos@v1.0.4 - name: Run fmt run: cargo fmt --all --check - - name: Run clippy - run: | - rustup component add clippy - cargo clippy --all