Merge branch 'main' into improve-rolling-docstring #304
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
| # Workflow to build and test wheels | |
| name: Test | |
| on: [push, pull_request, merge_group] | |
| concurrency: | |
| # Cancel previous workflows of the same PR, but only for PRs | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| test_skimage_linux: | |
| name: linux-cp${{ matrix.python-version }}-${{ matrix.OPTIONS_NAME }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| # Ensure that a wheel builder finishes even if another fails | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13"] | |
| PIP_FLAGS: [""] | |
| MINIMUM_REQUIREMENTS: [0] | |
| BUILD_DOCS: [1] | |
| PYTHONOPTIMIZE: [0] | |
| TEST_EXAMPLES: [0] | |
| OPTIONAL_DEPS: [0] | |
| OPTIONS_NAME: ["default"] | |
| INSTALL_FROM_SDIST: [0] | |
| WITHOUT_POOCH: [0] | |
| EAGER_IMPORT: [0] | |
| include: | |
| - platform_id: manylinux_x86_64 | |
| python-version: "3.10" | |
| MINIMUM_REQUIREMENTS: 1 | |
| BUILD_DOCS: 0 | |
| OPTIONAL_DEPS: 0 | |
| EAGER_IMPORT: 1 | |
| OPTIONS_NAME: "mini-req-eager-import" | |
| - platform_id: manylinux_x86_64 | |
| python-version: "3.10" | |
| MINIMUM_REQUIREMENTS: 1 | |
| OPTIONAL_DEPS: 1 | |
| BUILD_DOCS: 0 | |
| OPTIONS_NAME: "mini-req-optional-deps" | |
| - platform_id: manylinux_x86_64 | |
| python-version: "3.12" | |
| PIP_FLAGS: "--pre" | |
| OPTIONS_NAME: "pre" | |
| - platform_id: manylinux_x86_64 | |
| python-version: "3.12" | |
| BUILD_DOCS: 1 | |
| OPTIONAL_DEPS: 1 | |
| OPTIONS_NAME: "optional-deps" | |
| - platform_id: manylinux_x86_64 | |
| python-version: "3.12" | |
| PYTHONOPTIMIZE: 2 | |
| WITHOUT_POOCH: 1 | |
| BUILD_DOCS: 0 | |
| OPTIONS_NAME: "optimize and no pooch" | |
| - platform_id: manylinux_x86_64 | |
| python-version: "3.12" | |
| INSTALL_FROM_SDIST: 1 | |
| OPTIONS_NAME: "install-from-sdist" | |
| steps: | |
| - name: Checkout scikit-image | |
| uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version}} | |
| allow-prereleases: true | |
| - name: Build package | |
| env: | |
| # Set variables here that are used by the build script below | |
| # (including those used within tools/github/before_install.sh) | |
| MINIMUM_REQUIREMENTS: ${{ matrix.MINIMUM_REQUIREMENTS }} | |
| PIP_FLAGS: ${{ matrix.PIP_FLAGS }} | |
| INSTALL_FROM_SDIST: ${{ matrix.INSTALL_FROM_SDIST }} | |
| run: | | |
| set -ex | |
| source tools/github/before_install.sh | |
| set -ex | |
| if [[ $INSTALL_FROM_SDIST == "1" ]]; then | |
| python -m build --no-isolation --skip-dependency-check --sdist . | |
| pip install dist/scikit_image-*.tar.gz | |
| else | |
| pip install -vv --no-build-isolation .; | |
| fi | |
| - name: Run tests | |
| env: | |
| # Set variables here that are used by the run script below | |
| # (including those used within tools/github/script.sh) | |
| # Also includes the EAGER_IMPORT that skimage checks. | |
| PIP_FLAGS: ${{ matrix.PIP_FLAGS }} | |
| BUILD_DOCS: ${{ matrix.BUILD_DOCS }} | |
| TEST_EXAMPLES: ${{ matrix.TEST_EXAMPLES }} | |
| OPTIONAL_DEPS: ${{ matrix.OPTIONAL_DEPS }} | |
| INSTALL_FROM_SDIST: ${{ matrix.INSTALL_FROM_SDIST }} | |
| EAGER_IMPORT: ${{ matrix.EAGER_IMPORT }} | |
| WITHOUT_POOCH: ${{ matrix.WITHOUT_POOCH }} | |
| run: | | |
| source tools/github/script.sh | |
| - name: Check benchmarks | |
| run: | | |
| asv check -v -E existing | |
| test_skimage_linux_free_threaded: | |
| name: linux-cp313t-default | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout scikit-image | |
| uses: actions/checkout@v4 | |
| # TODO: replace with setup-python when there is support | |
| - uses: deadsnakes/action@6c8b9b82fe0b4344f4b98f2775fcc395df45e494 # v3.1.0 | |
| with: | |
| python-version: "3.13" | |
| nogil: true | |
| - name: Install nightly dependencies | |
| run: | | |
| set -ex | |
| source tools/github/before_install.sh | |
| pip install -vv --no-build-isolation . | |
| - name: Run tests | |
| env: | |
| PYTHON_GIL: 0 | |
| run: | | |
| source tools/github/script.sh | |
| test_skimage_macos: | |
| name: macos-cp${{ matrix.python-version }} | |
| runs-on: macos-13 | |
| strategy: | |
| # Ensure that a wheel builder finishes even if another fails | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13"] | |
| OPTIONAL_DEPS: [1] | |
| BUILD_DOCS: [1] | |
| OPTIONS_NAME: ["default"] | |
| env: | |
| TEST_EXAMPLES: 0 | |
| CC: /usr/bin/clang | |
| CXX: /usr/bin/clang++ | |
| CPPFLAGS: "-Xpreprocessor -fopenmp" | |
| CFLAGS: "-Wno-implicit-function-declaration -I/usr/local/opt/libomp/include" | |
| CXXFLAGS: "-I/usr/local/opt/libomp/include" | |
| LDFLAGS: "-Wl,-rpath,/usr/local/opt/libomp/lib -L/usr/local/opt/libomp/lib -lomp" | |
| steps: | |
| - name: Checkout scikit-image | |
| uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version}} | |
| allow-prereleases: true | |
| - name: OSX configuration | |
| run: | | |
| # OpenMP is not present on macOS by default | |
| set -ex | |
| brew install libomp | |
| - name: Build package | |
| run: | | |
| set -ex | |
| source tools/github/before_install.sh | |
| python -m build --no-isolation --sdist | |
| pip install -vv --no-build-isolation .; | |
| - name: Run tests | |
| env: | |
| # Note: TEST_EXAMPLES is not in the matrix. | |
| # It gets inherited from the job-level env. | |
| OPTIONAL_DEPS: ${{ matrix.OPTIONAL_DEPS }} | |
| BUILD_DOCS: ${{ matrix.BUILD_DOCS }} | |
| run: | | |
| source tools/github/script.sh | |
| - name: Check benchmarks | |
| run: | | |
| asv check -v -E existing |