# The AGENTS.md quality gate (`cargo xtask ci`: fmt, clippy -D warnings, tests, assets, layers, # wasm, parity --check) on every pull request and every push to main, so a merge burst can't land # a red tree that only the next agent session discovers. name: CI on: push: branches: [main] pull_request: workflow_dispatch: permissions: contents: read concurrency: group: ci-${{ github.ref }} cancel-in-progress: true jobs: gate: name: cargo xtask ci runs-on: ubuntu-24.04 timeout-minutes: 60 env: CARGO_TERM_COLOR: always CARGO_INCREMENTAL: "0" steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Install Linux build dependencies (winit, wgpu, rfd) run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ pkg-config libxkbcommon-dev libwayland-dev libx11-dev libxcursor-dev libxrandr-dev \ libxi-dev libgtk-3-dev libfontconfig1-dev libfreetype-dev mesa-vulkan-drivers - name: Install Rust (stable + clippy, rustfmt, wasm32) run: | rustup toolchain install stable --profile minimal --component clippy,rustfmt \ --target wasm32-unknown-unknown rustup default stable - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 with: save-if: ${{ github.ref == 'refs/heads/main' }} - name: Quality gate run: cargo xtask ci