name: Rust CI on: push: branches: - main pull_request: types: [opened, repoened, synchronize] jobs: cargo-audit: name: Audit runs-on: ubuntu-latest steps: - name: Cache cargo-audit uses: actions/cache@v3 with: path: | ~/.cargo/.crates.toml ~/.cargo/.crates2.json ~/.cargo/bin/cargo-audit key: cargo-audit - name: Install cargo-audit run: cargo install cargo-audit - name: Checkout sources uses: actions/checkout@v3 - name: Run cargo audit run: cargo audit -D warnings test: runs-on: ubuntu-latest strategy: fail-fast: false matrix: backend_feature: - --features ristretto255-ciphersuite,ristretto255-u64 - --features ristretto255-ciphersuite,ristretto255-u32 - frontend_feature: - - --features danger - --features serde toolchain: - stable - 1.57.0 name: test steps: - name: Checkout sources uses: actions/checkout@v3 - name: Install ${{ matrix.toolchain }} toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{ matrix.toolchain }} override: true - name: Run cargo test uses: actions-rs/cargo@v1 with: command: test args: --no-default-features ${{ matrix.backend_feature }} - name: Run cargo test with alloc uses: actions-rs/cargo@v1 with: command: test args: --no-default-features ${{ matrix.frontend_feature }},alloc ${{ matrix.backend_feature }} - name: Run cargo test with std uses: actions-rs/cargo@v1 with: command: test args: --no-default-features ${{ matrix.frontend_feature }},std ${{ matrix.backend_feature }} build-no-std: name: Build with no-std on ${{ matrix.target }} runs-on: ubuntu-latest strategy: fail-fast: false matrix: target: # for wasm - wasm32-unknown-unknown # for any no_std target - thumbv6m-none-eabi backend_feature: - - --features ristretto255-ciphersuite,ristretto255-u64 - --features ristretto255-ciphersuite,ristretto255-u32 frontend_feature: - - --features danger - --features serde steps: - uses: actions/checkout@v3 - uses: hecrj/setup-rust-action@v1 - run: rustup target add ${{ matrix.target }} - run: cargo build --verbose --target=${{ matrix.target }} --no-default-features ${{ matrix.frontend_feature }} ${{ matrix.backend_feature }} clippy: name: cargo clippy runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v3 - name: Install stable toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true components: clippy - name: Run cargo clippy uses: actions-rs/cargo@v1 with: command: clippy args: --all-targets -- -D warnings - name: Run cargo doc uses: actions-rs/cargo@v1 env: RUSTDOCFLAGS: -D warnings with: command: doc args: --no-deps --document-private-items --features danger,std rustfmt: name: cargo fmt runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v3 - name: Install nightly toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true components: rustfmt - name: Run cargo fmt uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check taplo: name: Taplo runs-on: ubuntu-latest steps: - name: Cache uses: actions/cache@v3 with: path: | ~/.cargo/.crates.toml ~/.cargo/.crates2.json ~/.cargo/bin/taplo key: taplo - name: Install Taplo run: cargo install taplo-cli - name: Checkout sources uses: actions/checkout@v3 - name: Run Taplo run: taplo fmt --check