name: CI on: push: branches: [main] pull_request: jobs: crate: runs-on: macos-latest steps: - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@master with: toolchain: "1.95" components: clippy, rustfmt targets: wasm32-unknown-unknown - uses: Swatinem/rust-cache@v2 - run: scripts/check.sh platforms: strategy: fail-fast: false matrix: # One leg per runner registered with git.zacharyzhang.com; macOS arm64 is the crate job above. os: [ubuntu-24.04, windows-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@master with: toolchain: "1.95" - uses: Swatinem/rust-cache@v2 - if: runner.os != 'Linux' run: cargo test --lib --features test-support --quiet # The Linux job container runs as root, which ignores the file permissions the tests check. - if: runner.os == 'Linux' run: | useradd --create-home ci chmod o+x "$HOME" chown -R ci "$GITHUB_WORKSPACE" "$HOME/.cargo" "$HOME/.rustup" runuser -u ci -- env HOME=/home/ci CARGO_HOME="$HOME/.cargo" RUSTUP_HOME="$HOME/.rustup" PATH="$PATH" cargo test --lib --features test-support --quiet - run: cargo build --example gallery site: runs-on: ubuntu-latest defaults: run: working-directory: frontend steps: - uses: actions/checkout@v7 - uses: pnpm/action-setup@v6 with: version: 11 - uses: actions/setup-node@v7 with: node-version: 24 cache: pnpm cache-dependency-path: frontend/pnpm-lock.yaml - run: pnpm install --frozen-lockfile - run: pnpm test - run: pnpm build