name: CI on: push: branches: [ main ] paths: - '**.rs' - '**.toml' - '.github/workflows/**' pull_request: branches: [ main ] paths: - '**.rs' - '**.toml' - '.github/workflows/**' env: CARGO_TERM_COLOR: always jobs: test: strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] rust: [stable] runs-on: ${{ matrix.os }} steps: - name: Install toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{ matrix.rust }} override: true - name: Checkout code uses: actions/checkout@v2 - name: Build code uses: actions-rs/cargo@v1 with: command: build args: --all --all-features - name: Test code uses: actions-rs/cargo@v1 with: command: test args: --all --all-features audit: needs: test runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Audit dependencies uses: EmbarkStudios/cargo-deny-action@v1 lint: needs: test runs-on: ubuntu-latest steps: - name: Install toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true components: clippy - name: Checkout code uses: actions/checkout@v2 - name: Check code formatting uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check --config imports_granularity=Crate,group_imports=StdExternalCrate - name: Check for common mistakes and missed improvements uses: actions-rs/clippy-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} args: --all-features