name: ci on: push: branches: - main - 'linear/**' pull_request: jobs: rust: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install tmux + build deps run: | apt-get update apt-get install -y --no-install-recommends \ tmux git curl ca-certificates build-essential pkg-config - name: Install rustup + stable toolchain run: | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \ | sh -s -- -y --profile minimal --default-toolchain stable \ --component rustfmt --component clippy echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Install Node.js + pnpm run: | curl -fsSL https://deb.nodesource.com/setup_20.x | bash - apt-get install -y --no-install-recommends nodejs corepack enable corepack prepare pnpm@9.15.4 --activate - name: Cache cargo uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock', '**/Cargo.toml') }} restore-keys: | ${{ runner.os }}-cargo- - name: fmt run: cargo fmt --all -- --check - name: clippy run: cargo clippy --all-targets -- -D warnings - name: test run: cargo test --all