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: build-rs: 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 test-rs: runs-on: ubuntu-latest needs: [build-rs] 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 lint-rs: runs-on: ubuntu-latest needs: [build-rs] 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