|
@@ -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
|