name: macOS
on:
  push:
    branches:
    - master
    - '[0-9]+.[0-9]+'
  pull_request:

concurrency:
  group: ${{github.workflow}}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  tests:
    runs-on: macos-latest
    strategy:
      fail-fast: false
      matrix:
        python-version: ["3.10", "3.11", "3.12", "3.13"]

    steps:
    - uses: actions/checkout@v5

    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v6
      with:
        python-version: ${{ matrix.python-version }}

    - name: Run tests
      run: |
        pip install -U tox
        tox -e py

    - name: Upload coverage report
      uses: codecov/codecov-action@v5

    - name: Upload test results
      if: ${{ !cancelled() }}
      uses: codecov/codecov-action@v5
      with:
        report_type: test_results
