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 - name: Cache uses: actions/cache@v4 with: path: | $HOME/.cargo/registry target key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.toml') }} restore-keys: | ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.toml') }} ${{ runner.os }}-cargo-build-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: Cache uses: actions/cache@v4 with: path: | $HOME/.cargo/registry target key: ${{ runner.os }}-cargo-check-target-${{ hashFiles('**/Cargo.toml') }} restore-keys: | ${{ runner.os }}-cargo-check-target-${{ hashFiles('**/Cargo.toml') }} ${{ runner.os }}-cargo-check-target - name: Run clippy uses: actions-rs/cargo@v1 with: command: clippy args: -p nuchat --no-deps -- -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: Cache uses: actions/cache@v4 with: path: | $HOME/.cargo/registry target key: ${{ runner.os }}-cargo-test-target-${{ hashFiles('**/Cargo.toml') }} restore-keys: | ${{ runner.os }}-cargo-test-target-${{ hashFiles('**/Cargo.toml') }} ${{ runner.os }}-cargo-test-target - 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 '*'