build(deps): bump rand from 0.9.2 to 0.9.3 #210
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| types: [opened, synchronize, reopened, labeled] | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| minilints: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| filter: blob:none | |
| - name: Install Rust toolchain | |
| uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| - name: Run minilints | |
| run: cargo run -p minilints -- check /tmp/minilints.stamp | |
| env: | |
| CONTRIBUTORS_BYPASS_EMAILS: ${{ vars.CONTRIBUTORS_BYPASS_EMAILS }} | |
| # Lightweight formatting checks (no build outputs needed). | |
| # Uses individual tool installs instead of setup-anki to stay fast. | |
| format: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust toolchain | |
| uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Install n2 | |
| run: tools/install-n2 | |
| env: | |
| RUSTFLAGS: "--cap-lints warn" | |
| - name: Install just | |
| uses: extractions/setup-just@v3 | |
| - name: Run format checks | |
| run: just fmt | |
| # Linux runs on every PR and push to main. | |
| check-linux: | |
| runs-on: ubuntu-24.04 | |
| name: check (linux) | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Restore cargo cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry/index | |
| ~/.cargo/registry/cache | |
| ~/.cargo/git/db | |
| ~/.cargo/bin | |
| ~/.cargo/.crates.toml | |
| ~/.cargo/.crates2.json | |
| key: cargo-${{ runner.os }}-${{ hashFiles('Cargo.lock') }} | |
| restore-keys: cargo-${{ runner.os }}- | |
| - name: Restore build output cache | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: out | |
| key: build-Linux-${{ github.event.pull_request.number || 'main' }}-${{ github.run_id }} | |
| restore-keys: | | |
| build-Linux-${{ github.event.pull_request.number || 'main' }}- | |
| build-Linux-main- | |
| build-Linux- | |
| - name: Setup build environment | |
| uses: ./.github/actions/setup-anki | |
| - name: Install just | |
| uses: extractions/setup-just@v3 | |
| - name: Symlink node_modules | |
| run: ln -sf out/node_modules . | |
| - name: Build, lint, and test | |
| env: | |
| ONLINE_TESTS: "1" | |
| run: | | |
| just build | |
| just lint | |
| just test | |
| - name: Ensure libs importable | |
| env: | |
| SKIP_RUN: "1" | |
| run: ./run | |
| - name: Check Rust dependencies | |
| if: github.event_name == 'pull_request' | |
| id: rust-deps | |
| uses: tj-actions/changed-files@v47.0.5 | |
| with: | |
| files: | | |
| Cargo.lock | |
| **/Cargo.toml | |
| .deny.toml | |
| - uses: EmbarkStudios/cargo-deny-action@v2 | |
| if: github.event_name != 'pull_request' || steps.rust-deps.outputs.any_changed == 'true' | |
| # out/pyenv contains a venv with absolute Python paths that break | |
| # across runs. out/build.ninja is regenerated by configure each time. | |
| # Remove both before saving so the cache stays portable. | |
| - name: Clean non-cacheable state | |
| if: always() | |
| shell: bash | |
| run: | | |
| rm -rf out/pyenv | |
| rm -f out/build.ninja | |
| - name: Save build output cache | |
| if: always() | |
| uses: actions/cache/save@v4 | |
| with: | |
| path: out | |
| key: build-Linux-${{ github.event.pull_request.number || 'main' }}-${{ github.run_id }} | |
| # Runs on pushes to main or on PRs with the check:macos label. | |
| check-macos: | |
| if: >- | |
| github.event_name == 'push' | |
| || contains(github.event.pull_request.labels.*.name, 'check:macos') | |
| runs-on: macos-latest | |
| name: check (macos) | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Restore cargo cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry/index | |
| ~/.cargo/registry/cache | |
| ~/.cargo/git/db | |
| ~/.cargo/bin | |
| ~/.cargo/.crates.toml | |
| ~/.cargo/.crates2.json | |
| key: cargo-macOS-${{ hashFiles('Cargo.lock') }} | |
| restore-keys: cargo-macOS- | |
| - name: Restore build output cache | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: out | |
| key: build-macOS-${{ github.event.pull_request.number || 'main' }}-${{ github.run_id }} | |
| restore-keys: | | |
| build-macOS-${{ github.event.pull_request.number || 'main' }}- | |
| build-macOS-main- | |
| build-macOS- | |
| - name: Setup build environment | |
| uses: ./.github/actions/setup-anki | |
| - name: Install just | |
| uses: extractions/setup-just@v3 | |
| - name: Symlink node_modules | |
| run: ln -sf out/node_modules . | |
| - name: Build, lint, and test | |
| run: | | |
| just build | |
| just wheels | |
| just lint | |
| just test | |
| - name: Clean non-cacheable state | |
| if: always() | |
| shell: bash | |
| run: | | |
| rm -rf out/pyenv | |
| rm -f out/build.ninja | |
| - name: Save build output cache | |
| if: always() | |
| uses: actions/cache/save@v4 | |
| with: | |
| path: out | |
| key: build-macOS-${{ github.event.pull_request.number || 'main' }}-${{ github.run_id }} | |
| # Runs on pushes to main or on PRs with the check:windows label. | |
| check-windows: | |
| if: >- | |
| github.event_name == 'push' | |
| || contains(github.event.pull_request.labels.*.name, 'check:windows') | |
| runs-on: windows-latest | |
| name: check (windows) | |
| # Colocate CARGO_HOME and TEMP on D: to keep all I/O on the same fast | |
| # local disk. | |
| env: | |
| CARGO_HOME: D:\cargo-home | |
| TEMP: D:\tmp | |
| TMP: D:\tmp | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Prepare D:\ directories | |
| shell: bash | |
| run: mkdir -p /d/cargo-home /d/tmp | |
| - name: Restore cargo cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| D:\cargo-home\registry\index | |
| D:\cargo-home\registry\cache | |
| D:\cargo-home\git\db | |
| D:\cargo-home\bin | |
| D:\cargo-home\.crates.toml | |
| D:\cargo-home\.crates2.json | |
| key: cargo-Windows-${{ hashFiles('Cargo.lock') }} | |
| restore-keys: cargo-Windows- | |
| - name: Restore build output cache | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: out | |
| key: build-Windows-${{ github.event.pull_request.number || 'main' }}-${{ github.run_id }} | |
| restore-keys: | | |
| build-Windows-${{ github.event.pull_request.number || 'main' }}- | |
| build-Windows-main- | |
| build-Windows- | |
| - name: Setup build environment | |
| uses: ./.github/actions/setup-anki | |
| - name: Install just | |
| uses: extractions/setup-just@v3 | |
| - name: Build, lint, and test | |
| run: | | |
| just build | |
| just lint | |
| just test | |
| # Also remove node_modules on Windows — file-locking corrupts the cache. | |
| - name: Clean non-cacheable state | |
| if: always() | |
| shell: bash | |
| run: | | |
| rm -rf out/pyenv out/node_modules | |
| rm -f out/build.ninja | |
| - name: Save build output cache | |
| if: always() | |
| uses: actions/cache/save@v4 | |
| with: | |
| path: out | |
| key: build-Windows-${{ github.event.pull_request.number || 'main' }}-${{ github.run_id }} |