name: test

on:
  push:
    branches:
      - "master"
      - "test-me-*"

  pull_request:
    branches:
      - "master"

# Cancel running jobs for the same workflow and branch.
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:

  package:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Build and Check Package
      uses: hynek/build-and-inspect-python-package@v2.2

  test:

    needs: [package]

    runs-on: ${{ matrix.os }}

    strategy:
      fail-fast: false
      matrix:
        os: [ windows-latest, ubuntu-latest ]
        python: [ "3.8","3.10","3.11","3.12", "pypy-3.8" ]

    steps:
    - uses: actions/checkout@v4
      with:
        fetch-depth: 0

    - name: Download Package
      uses: actions/download-artifact@v4.1.4
      with:
        name: Packages
        path: dist

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

    - name: Install tox
      run: pip install tox

    - name: Test
      shell: bash
      run: |
        tox run -e py --installpkg `find dist/*.tar.gz`
