name: Rust CI on: push: branches: - main pull_request: types: [opened, repoened, synchronize] jobs: test: runs-on: ubuntu-latest strategy: fail-fast: false matrix: backend_feature: - ristretto255_u64 - ristretto255_u32 - p256,ristretto255_u64 frontend_feature: - serde - danger toolchain: - stable - 1.51.0 name: test steps: - name: Checkout sources uses: actions/checkout@v2 - 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 --features ${{ matrix.backend_feature }} - name: Run cargo test with std uses: actions-rs/cargo@v1 with: command: test args: --no-default-features --features ${{ matrix.frontend_feature }},std --features ${{ 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_u64 - --features ristretto255_u32 - --features p256 frontend_feature: - - --features serde - --features danger steps: - uses: actions/checkout@v2 - 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@v2 - 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 std,p256 format: name: cargo fmt runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v2 - name: Install stable toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true components: rustfmt - name: Run cargo fmt uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check