name: CI on: push: branches: [main] pull_request: jobs: macos: runs-on: macos-latest steps: - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@master with: toolchain: "1.95" components: clippy, rustfmt - uses: Swatinem/rust-cache@v2 - run: scripts/check.sh - run: cargo build --locked platforms: strategy: fail-fast: false matrix: 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 --locked --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 --locked --quiet - run: cargo build --locked