name: CI on: pull_request: branches: ["main"] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: check: name: Check runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Install mise uses: jdx/mise-action@v2 - name: Cache Cargo artifacts uses: actions/cache@v5 with: path: | ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: cargo-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}-check restore-keys: | cargo-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}- cargo-${{ runner.os }}- - name: Install system dependencies run: sudo apt-get update && sudo apt-get install -y clang lld libssl-dev pkg-config - name: Check formatting run: cargo fmt -- --check - name: Clippy run: cargo clippy -- -D warnings - name: Run tests run: cargo test -- --show-output e2e: name: E2E Tests runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Install mise uses: jdx/mise-action@v2 - name: Cache Cargo artifacts uses: actions/cache@v5 with: path: | ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: cargo-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}-e2e restore-keys: | cargo-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}- cargo-${{ runner.os }}- - name: Install system dependencies run: sudo apt-get update && sudo apt-get install -y clang lld libssl-dev pkg-config - name: Install Chrome for E2E uses: browser-actions/setup-chrome@v1 - name: Run E2E tests run: cargo test --features e2e --test e2e -- --show-output