Repository navigation
Update Rust crate foldhash to 0.2.0 (#550) #2529
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: | |
| - "**" | |
| workflow_dispatch: {} # support manual runs | |
| permissions: | |
| contents: read | |
| jobs: | |
| ci: | |
| name: CI | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| runner: | |
| - ubuntu-24.04 | |
| - macos-15 | |
| - windows-2025 | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.14t"] | |
| resolution: ["highest", "lowest-direct"] | |
| env: | |
| # Shared env variables for all the tests | |
| UV_RESOLUTION: "${{ matrix.resolution }}" | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| submodules: recursive | |
| - uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 | |
| with: | |
| go-version: stable | |
| # We use this to install certain tools defined in poe tasks | |
| cache-dependency-path: poe_tasks.toml | |
| - uses: mozilla-actions/sccache-action@fc920bf0ec8de6ee65d409111f7ec508035751ba # v0.0.11 | |
| - uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 | |
| with: | |
| path: .sccache | |
| key: sccache-${{ matrix.runner }}-${{ github.sha }} | |
| restore-keys: sccache-${{ matrix.runner }}- | |
| - name: Enable sccache | |
| shell: bash | |
| run: | | |
| echo "SCCACHE_DIR=${{ github.workspace }}/.sccache" >> $GITHUB_ENV | |
| echo "SCCACHE_CACHE_SIZE=250M" >> $GITHUB_ENV | |
| echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV | |
| # sccache mis-parses the -Tp that cc passes cl.exe before .cc sources | |
| # (mozilla/sccache#2062). The uncached sdist job still covers cl.exe. | |
| - name: Use clang-cl | |
| if: runner.os == 'Windows' | |
| shell: bash | |
| run: | | |
| echo "CC=clang-cl" >> $GITHUB_ENV | |
| echo "CXX=clang-cl" >> $GITHUB_ENV | |
| - name: Setup rust | |
| run: rustup update | |
| - uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - run: uv sync | |
| - run: uv run poe test | |
| # Ensure tests pass without optional dependencies. Issues would come from eager imports, so we go ahead | |
| # and run the single conformance test only to keep this step lightweight and give high coverage. | |
| - run: | | |
| uv sync --no-dev | |
| uv run --no-dev --group dev-required pytest -k test_conformance | |
| # Confirm the sdist can be built with a default CI environment. | |
| sdist: | |
| # Slow so skip on PR | |
| if: github.event_name != 'pull_request' | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| runner: | |
| - ubuntu-24.04 | |
| - macos-15 | |
| - macos-15-intel | |
| - windows-2025 | |
| - windows-11-arm | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| submodules: recursive | |
| - uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 | |
| # uv build first generates the sdist and then builds a wheel from it isolated from the repo. | |
| # So it is enough to verify the sdist is usable. | |
| - run: uv build | |
| lint: | |
| runs-on: ubuntu-26.04 | |
| env: | |
| # We don't need the built extension for linting | |
| UV_NO_PROJECT: "true" | |
| PROTOVALIDATE_SKIP_CPP: "true" | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Setup rust | |
| run: rustup update | |
| - uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - run: uv sync --locked | |
| - run: uv run poe lint | |
| - run: uv run poe format | |
| - run: uv run poe generate | |
| env: | |
| BUF_TOKEN: ${{ secrets.BUF_TOKEN }} | |
| - run: uv run poe diffcheck |