# Based on https://github.com/actions-rs/meta/blob/master/recipes/quickstart.md on: pull_request: {} push: branches: master name: Rust jobs: check: name: Check runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v1 - name: Install stable toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable override: true - name: Run cargo check uses: actions-rs/cargo@v1 with: command: check test: name: Test Suite strategy: matrix: platform: - ubuntu-latest - macos-latest # TODO: support Windows after eliminating C legacy # - windows-latest toolchain: - 1.39.0 - stable runs-on: ${{ matrix.platform }} steps: - name: Checkout sources uses: actions/checkout@v1 - name: Install stable toolchain uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.toolchain }} override: true - name: Run cargo test uses: actions-rs/cargo@v1 env: RUSTFLAGS: -D warnings with: command: test args: --release fmt: name: Rustfmt runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v1 - name: Install stable toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable override: true - name: Install rustfmt run: rustup component add rustfmt - name: Run cargo fmt uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check clippy: name: Clippy runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v1 - name: Install stable toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable override: true - name: Install clippy run: rustup component add clippy - name: Run cargo clippy uses: actions-rs/cargo@v1 with: command: clippy args: -- -D warnings # TODO: use actions-rs/audit-check security_audit: name: Security Audit runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v1 - name: Install stable toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable override: true - name: Install cargo audit run: cargo install cargo-audit - name: Run cargo audit uses: actions-rs/cargo@v1 with: command: audit args: --deny-warnings