name: Rust on: push: branches: [main] pull_request: paths: - 'rust/**' # Allows you to run this workflow manually from the Actions tab workflow_dispatch: env: CARGO_TERM_COLOR: always jobs: rust-build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable - uses: Swatinem/rust-cache@v1 with: working-directory: ./rust - name: Build run: cd rust && cargo build --verbose rust-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable - uses: Swatinem/rust-cache@v1 with: working-directory: ./rust - name: Run tests run: cd rust && cargo test --verbose rust-lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable - uses: Swatinem/rust-cache@v1 with: working-directory: ./rust - name: Rustfmt run: cd rust && cargo fmt -- --check - name: Clippy run: cd rust && cargo clippy -- -D warnings