name: Server Rust lint and build on: push: branches: [main] paths: - 'server/src/**' - 'server/Cargo/**' - '.gitea/workflows/server.yml' pull_request: paths: - 'server/src/**' - 'server/Cargo/**' - '.gitea/workflows/server.yml' jobs: ci: runs-on: ubuntu-latest defaults: run: working-directory: server steps: - name: Checkout uses: actions/checkout@v4 - name: Configure Cargo Cache uses: actions/cache@v5 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo- - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: components: rustfmt, clippy - name: Rustfmt run: cargo fmt --all -- --check - name: Check run: cargo check - name: Clippy run: cargo clippy -- -D warnings - name: Test run: cargo test - name: Build run: cargo build