name: Test

on: [push, pull_request]

jobs:
  test:
    runs-on: ${{ matrix.os }}
    strategy:
      max-parallel: 5
      matrix:
        os: [ubuntu-22.04, windows-2022, macos-12, macos-14]
        python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]

    steps:
      - uses: actions/checkout@v4

      - name: Set up Python ${{ matrix.python-version }}
        if: ${{ matrix.os != 'mac-14' && matrix.package == '3.8' }}
        uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python-version }}

      - name: Install dependencies
        if: ${{ matrix.os != 'mac-14' && matrix.package == '3.8' }}
        run: |
          python -m pip install --upgrade pip
          python -m pip install -e ".[test,dask-image,itk,cli]"

      - name: Test with pytest
        if: ${{ matrix.os != 'mac-14' && matrix.package == '3.8' }}
        run: |
          pytest --junitxml=junit/test-results.xml

      - name: Publish Test Report
        if: ${{ matrix.os != 'mac-14' && matrix.package == '3.8' }}
        uses: mikepenz/action-junit-report@v2
        with:
          report_paths: "junit/test-results*.xml"
