Skip to content

Update CI matrix for Intel & M1 macOS #354

Update CI matrix for Intel & M1 macOS

Update CI matrix for Intel & M1 macOS #354

Workflow file for this run

name: Tests
on:
push:
branches: [master]
pull_request:
jobs:
build:
runs-on: ${{ matrix.platform }}
strategy:
fail-fast: false
matrix:
# https://help.github.com/articles/virtual-environments-for-github-actions
platform:
- ubuntu-latest # ubuntu-22.04
- macos-13 # macos-13 (Intel)
- macos-latest # macos-14 (M1)
- windows-latest # windows-2022
python-version: [3.7, 3.8, 3.9, '3.10', 3.11, 3.12, pypy-3.7, pypy-3.8, pypy-3.9, pypy-3.10]
exclude:
# Exclude the following configuration to avoid an error.
# Error: The version '...' with architecture 'arm64' was not found for macOS 14.4.1.
# The list of all available versions can be found here: https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json
- platform: macos-latest
python-version: 3.7
- platform: macos-latest
python-version: pypy-3.7
steps:
- uses: actions/checkout@v3
if: ${{ ! startsWith(matrix.python-version, 'pypy-') }}
- uses: actions/checkout@v1
if: ${{ startsWith(matrix.python-version, 'pypy-') }}
# Using actions/checkout@v2 or later with pypy causes an error
# https://foss.heptapod.net/pypy/pypy/-/issues/3640
# py.error.ENOENT: [No such file or directory]:
# listdir('/home/runner/work/tox-gh-actions/tox-gh-actions/.tox/dist/
# warnings.warn(f\'"{wd.path}" is shallow and may cause errors\')',)
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade setuptools pip wheel
# Use the latest published version for myself :)
python -m pip install --pre tox-gh-actions
- name: Test with tox
run: tox
- name: Upload coverage.xml
if: ${{ matrix.platform == 'ubuntu-latest' && matrix.python-version == '3.12' }}
uses: actions/upload-artifact@v3
with:
name: tox-gh-actions-coverage
path: coverage.xml
if-no-files-found: error
- name: Upload coverage.xml to codecov
if: ${{ matrix.platform == 'ubuntu-latest' && matrix.python-version == '3.12' }}
uses: codecov/codecov-action@v2