name: ci # Quality gates for every push to main and every pull request: rustfmt, clippy (-D warnings), # tests, asset attribution, crate layering and the wasm32 check — `cargo xtask ci`. on: push: branches: [main] pull_request: workflow_dispatch: concurrency: group: ci-${{ github.ref }} cancel-in-progress: true env: CARGO_TERM_COLOR: always # Same craft-fonts commit as release.yml (Latin presentation fonts). CRAFT_FONTS_REF: 43913056ce82a3fdad0ef69f6b88d1dc922a8104 jobs: gates: name: gates (${{ matrix.os }}) strategy: fail-fast: false matrix: # No macOS on PRs or main: the org's 5 macOS slots are kept for release builds, and # release.yml builds macOS (a failing release is fixed and rebuilt). os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Check out craft-fonts uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: repository: storytold/craft-fonts ref: ${{ env.CRAFT_FONTS_REF }} path: craft-fonts - name: Linux build dependencies if: runner.os == 'Linux' run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ libasound2-dev libxkbcommon-dev libwayland-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev - uses: dtolnay/rust-toolchain@686976e191b89faba57d3206551f0f330d8cb249 # stable with: components: rustfmt, clippy targets: wasm32-unknown-unknown - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 with: key: ci-${{ matrix.os }} - name: cargo xtask ci env: CRAFT_FONTS_DIR: ${{ github.workspace }}/craft-fonts run: cargo xtask ci