diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e449161..6b6f306 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,16 +47,18 @@ jobs: if-no-files-found: error test: - name: ${{ matrix.os.name }} ${{ matrix.python.name }} ${{ matrix.reactor.name }} + name: ${{ matrix.os.name }} ${{ matrix.python.name }} ${{ matrix.reactor.name }} ${{ matrix.arch.name }} needs: build - runs-on: ${{ matrix.os.runs-on }} + runs-on: ${{ matrix.os.runs-on[matrix.arch.matrix] }} container: ${{ matrix.os.container[matrix.python.docker] }} strategy: fail-fast: false matrix: os: - name: 🐧 - runs-on: ubuntu-latest + matrix: linux + runs-on: + intel: ubuntu-latest python_platform: linux container: "2.7": docker://python:2.7-buster @@ -73,56 +75,69 @@ jobs: "pypy3.9": docker://pypy:3.9-bookworm "pypy3.10": docker://pypy:3.10-bookworm - name: 🪟 - runs-on: windows-latest + matrix: windows + runs-on: + intel: windows-latest python_platform: win32 - name: 🍎 - runs-on: macos-12 + matrix: macos + runs-on: + arm: macos-latest + intel: macos-13 python_platform: darwin python: - name: CPython 2.7 tox: py27 + major-dot-minor: 2.7 action: 2.7 docker: 2.7 implementation: cpython major: 2 - name: CPython 3.6 tox: py36 + major-dot-minor: 3.6 action: 3.6 docker: 3.6 implementation: cpython major: 3 - name: CPython 3.7 tox: py37 + major-dot-minor: 3.7 action: 3.7 docker: 3.7 implementation: cpython major: 3 - name: CPython 3.8 tox: py38 + major-dot-minor: 3.8 action: 3.8 docker: 3.8 implementation: cpython major: 3 - name: CPython 3.9 tox: py39 + major-dot-minor: 3.9 action: 3.9 docker: 3.9 implementation: cpython major: 3 - name: CPython 3.10 tox: py310 + major-dot-minor: "3.10" action: "3.10" docker: "3.10" implementation: cpython major: 3 - name: CPython 3.11 tox: py311 + major-dot-minor: "3.11" action: "3.11" docker: "3.11" implementation: cpython major: 3 - name: CPython 3.12 tox: py312 + major-dot-minor: "3.12" action: "3.12" docker: "3.12" implementation: cpython @@ -137,24 +152,28 @@ jobs: # major: 2 - name: PyPy 3.7 tox: pypy37 + major-dot-minor: 3.7 action: pypy-3.7 docker: pypy3.7 implementation: pypy major: 3 - name: PyPy 3.8 tox: pypy38 + major-dot-minor: 3.8 action: pypy-3.8 docker: pypy3.8 implementation: pypy major: 3 - name: PyPy 3.9 tox: pypy39 + major-dot-minor: 3.9 action: pypy-3.9 docker: pypy3.9 implementation: pypy major: 3 - name: PyPy 3.10 tox: pypy310 + major-dot-minor: "3.10" action: pypy-3.10 docker: pypy3.10 implementation: pypy @@ -172,6 +191,15 @@ jobs: - name: asyncio tox: asyncio dependencies: asyncio + arch: + - name: ARM + matrix: arm + setup-python: + architecture: arm64 + - name: Intel + matrix: intel + setup-python: + architecture: x64 exclude: - python: major: 2 @@ -190,11 +218,11 @@ jobs: reactor: tox: pyside2 - python: - action: "3.11" + major-dot-minor: "3.11" reactor: tox: pyside2 - python: - action: "3.12" + major-dot-minor: "3.12" reactor: tox: pyside2 - python: @@ -209,6 +237,30 @@ jobs: implementation: pypy reactor: tox: pyside2 + - os: + matrix: linux + arch: + matrix: arm + - os: + matrix: windows + arch: + matrix: arm + - os: + matrix: macos + python: + major-dot-minor: "3.6" + arch: + matrix: arm + - os: + matrix: macos + python: + major-dot-minor: "3.7" + arch: + matrix: arm + - arch: + matrix: arm + reactor: + tox: pyside2 steps: - uses: actions/checkout@v4 - name: Enable Problem Matchers @@ -227,7 +279,7 @@ jobs: # CPython -> 3.9.0-alpha - 3.9.X # PyPy -> pypy-3.7 python-version: ${{ fromJSON(format('["{0}", "{1}"]', format('{0}.0-alpha - {0}.X', matrix.python.action), matrix.python.action))[startsWith(matrix.python.action, 'pypy')] }} - architecture: x64 + architecture: ${{ matrix.arch.setup-python.architecture }} - name: Report Python information shell: bash run: |