name: Run tests on: push: branches: [main] pull_request: create: jobs: test: strategy: matrix: os: ["ubuntu-latest", "windows-latest", "macos-latest"] py: ["3.14-dev", "3.13", "3.12", "3.11", "3.10", "3.9", "3.8"] runs-on: ${{ matrix.os }} name: Run test with Python ${{ matrix.py }} on ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: ${{ matrix.py }} allow-prereleases: true cache: "pip" - name: Prepare shell: bash run: | pip install -U pip pip install -r requirements.txt pytest - name: Build shell: bash run: | make cython pip install . - name: Test (C extension) shell: bash run: | pytest -v test - name: Test (pure Python fallback) shell: bash run: | MSGPACK_PUREPYTHON=1 pytest -v test - name: build packages shell: bash run: | pip install build python -m build - name: upload packages uses: actions/upload-artifact@v4 with: name: dist-${{ matrix.os }}-${{ matrix.py }} path: dist