name: Cargo run-name: ${{ gitea.actor }} is verifying cargo build and tests on: [push] jobs: build: env: RUNNER_TOOL_CACHE: /toolcache runs-on: rust-latest steps: - name: Check out repository code uses: actions/checkout@v4 - uses: actions/setup-go@v3 with: go-version: '1.24' - uses: actions/go-hashfiles@v0.0.1 id: get-hash with: patterns: |- **/Cargo.toml - name: Echo hash run: echo ${{ steps.get-hash.outputs.hash }} - name: Cargo target cache uses: actions/cache@v4 with: path: | ~/.cargo target key: ${{ runner.os }}-cargo-target-${{ setps.get-hash.outputs.hash }}-${{ setps.get-hash.outputs.hash }} restore-keys: | ${{ runner.os }}-cargo-target-${{ setps.get-hash.outputs.hash }} ${{ runner.os }}-cargo-target - name: Build project uses: actions-rs/cargo@v1 with: command: build args: --release check: runs-on: rust-latest steps: - name: Check out repository code uses: actions/checkout@v4 - name: Run clippy uses: actions-rs/cargo@v1 with: command: clippy args: -- -Dwarnings -Wclippy::correctness -Wclippy::complexity -Wclippy::perf -Aclippy::missing_errors_doc -Aclippy::missing_panics_doc test: runs-on: rust-latest steps: - name: Check out repository code uses: actions/checkout@v4 - name: Run unit tests uses: actions-rs/cargo@v1 with: command: test args: --lib --bins - name: Run integration tests uses: actions-rs/cargo@v1 with: command: test args: --tests '*'