name: Run tests on: push: branches: [main] pull_request: create: jobs: test: strategy: matrix: os: ["ubuntu-latest", "windows-latest", "windows-11-arm", "macos-latest"] py: ["3.14", "3.14t", "3.13", "3.12", "3.11", "3.10"] exclude: - os: windows-11-arm py: "3.10" runs-on: ${{ matrix.os }} name: Run test with Python ${{ matrix.py }} on ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Python uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: ${{ matrix.py }} allow-prereleases: true cache: "pip" - name: Prepare shell: bash run: | python -m 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: | python -m build -nv - name: upload packages uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: dist-${{ matrix.os }}-${{ matrix.py }} path: dist