refactor: keep the blocked all_equal scan on the CPU buffer #896
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
| # This workflow will install Python dependencies, run tests and lint with a variety of Python versions | |
| # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
| name: Test | |
| on: | |
| push: | |
| branches: [ main, 3.1.x ] | |
| pull_request: | |
| branches: [ main, 3.1.x ] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| env: | |
| # Use the uv from astral-sh/setup-uv; without an explicit path hatch | |
| # bootstraps its own (pyapp) uv, which fails on non-3.12 runners. | |
| HATCH_ENV_TYPE_VIRTUAL_UV_PATH: uv | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| name: os=${{ matrix.os }}, py=${{ matrix.python-version }}, deps=${{ matrix.dependency-set }} | |
| environment: | |
| name: codecov-upload | |
| deployment: false | |
| defaults: | |
| run: | |
| shell: bash | |
| strategy: | |
| matrix: | |
| python-version: ['3.12', '3.13', '3.14'] | |
| dependency-set: ["minimal", "optional"] | |
| os: ["ubuntu-latest"] | |
| include: | |
| - python-version: '3.12' | |
| dependency-set: 'optional' | |
| os: 'macos-latest' | |
| - python-version: '3.14' | |
| dependency-set: 'optional' | |
| os: 'macos-latest' | |
| - python-version: '3.12' | |
| dependency-set: 'optional' | |
| os: 'windows-latest' | |
| - python-version: '3.14' | |
| dependency-set: 'optional' | |
| os: 'windows-latest' | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 # grab all branches and tags | |
| persist-credentials: false | |
| - name: Set up Python | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'pip' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0 | |
| - name: Install Hatch | |
| run: python -m pip install hatch==1.16.5 | |
| - name: Install just | |
| uses: extractions/setup-crate@7577c1bdf2d95e6d65d532788f35ed79d4b1dda2 # v2.0.1 | |
| with: | |
| repo: casey/just | |
| version: 1.58.0 | |
| - name: Set Up Hatch Env | |
| env: | |
| HATCH_ENV: test.py${{ matrix.python-version }}-${{ matrix.dependency-set }} | |
| run: | | |
| just setup | |
| - name: Run Tests | |
| env: | |
| HYPOTHESIS_PROFILE: ci | |
| HATCH_ENV: test.py${{ matrix.python-version }}-${{ matrix.dependency-set }} | |
| run: | | |
| just coverage | |
| - name: Upload coverage | |
| if: ${{ matrix.dependency-set == 'optional' && matrix.os == 'ubuntu-latest' }} | |
| uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| flags: tests | |
| verbose: true # optional (default = false) | |
| test-upstream-and-min-deps: | |
| name: py=${{ matrix.python-version }}-${{ matrix.dependency-set }} | |
| environment: | |
| name: codecov-upload | |
| deployment: false | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ['3.12', "3.14"] | |
| dependency-set: ["upstream", "min_deps"] | |
| exclude: | |
| - python-version: "3.14" | |
| dependency-set: min_deps | |
| - python-version: "3.12" | |
| dependency-set: upstream | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: Set up Python | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'pip' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0 | |
| - name: Install Hatch | |
| run: python -m pip install hatch==1.16.5 | |
| - name: Install just | |
| uses: extractions/setup-crate@7577c1bdf2d95e6d65d532788f35ed79d4b1dda2 # v2.0.1 | |
| with: | |
| repo: casey/just | |
| version: 1.58.0 | |
| - name: Set Up Hatch Env | |
| env: | |
| HATCH_ENV: ${{ matrix.dependency-set }} | |
| run: | | |
| just setup | |
| - name: Run Tests | |
| env: | |
| HATCH_ENV: ${{ matrix.dependency-set }} | |
| run: | | |
| just coverage | |
| - name: Upload coverage | |
| uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| flags: tests | |
| verbose: true # optional (default = false) | |
| doctests: | |
| name: doctests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 # required for hatch version discovery, which is needed for numcodecs.zarr3 | |
| persist-credentials: false | |
| - name: Set up Python | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: '3.13' | |
| cache: 'pip' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0 | |
| - name: Install Hatch | |
| run: python -m pip install hatch==1.16.5 | |
| - name: Install just | |
| uses: extractions/setup-crate@7577c1bdf2d95e6d65d532788f35ed79d4b1dda2 # v2.0.1 | |
| with: | |
| repo: casey/just | |
| version: 1.58.0 | |
| - name: Set Up Hatch Env | |
| run: | | |
| HATCH_ENV=doctest just setup | |
| - name: Run Tests | |
| run: | | |
| just doctest | |
| benchmarks: | |
| name: Benchmark smoke test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: Set up Python | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: '3.13' | |
| cache: 'pip' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0 | |
| - name: Install Hatch | |
| run: python -m pip install hatch==1.16.5 | |
| - name: Install just | |
| uses: extractions/setup-crate@7577c1bdf2d95e6d65d532788f35ed79d4b1dda2 # v2.0.1 | |
| with: | |
| repo: casey/just | |
| version: 1.58.0 | |
| - name: Run Benchmarks | |
| env: | |
| ZARR_BENCHMARK_CLEAR_CACHE: '1' | |
| run: | | |
| HATCH_ENV=test.py3.13-minimal just benchmark | |
| test-complete: | |
| name: Test complete | |
| needs: | |
| [ | |
| test, | |
| test-upstream-and-min-deps, | |
| doctests, | |
| benchmarks | |
| ] | |
| if: always() | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check failure | |
| if: | | |
| contains(needs.*.result, 'failure') || | |
| contains(needs.*.result, 'cancelled') | |
| run: exit 1 | |
| - name: Success | |
| run: echo Success! |