Skip to content

macos-latest architecture fix #2076

macos-latest architecture fix

macos-latest architecture fix #2076

Workflow file for this run

name: build
on: [push, pull_request]
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
jobs:
test:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
timeout-minutes: 30
strategy:
fail-fast: true
matrix:
include:
- name: 'check'
python: '3.11'
tox_env: 'check'
os: 'ubuntu-latest'
python_arch: 'x64'
- name: 'docs'
python: '3.11'
tox_env: 'docs'
os: 'ubuntu-latest'
python_arch: 'x64'
- name: 'py38 (ubuntu)'
python: '3.8'
python_arch: 'x64'
tox_env: 'py38'
os: 'ubuntu-latest'
- name: 'py39 (ubuntu)'
python: '3.9'
python_arch: 'x64'
tox_env: 'py39'
os: 'ubuntu-latest'
- name: 'py39 (windows)'
python: '3.9'
python_arch: 'x64'
tox_env: 'py39'
os: 'windows-latest'
- name: 'py310 (ubuntu)'
python: '3.10'
python_arch: 'x64'
tox_env: 'py310'
os: 'ubuntu-latest'
- name: 'py310 (windows)'
python: '3.10'
python_arch: 'x64'
tox_env: 'py310'
os: 'windows-latest'
- name: 'py311 (ubuntu)'
python: '3.11'
python_arch: 'x64'
tox_env: 'py311'
os: 'ubuntu-latest'
- name: 'py311 (macos)'
python: '3.11'
python_arch: 'arm64'
tox_env: 'py311'
os: 'macos-latest'
- name: 'py311 (windows)'
python: '3.11'
python_arch: 'x64'
tox_env: 'py311'
os: 'windows-latest'
# - name: 'pypy38 (ubuntu)'
# python: 'pypy-3.8'
# toxpython: 'pypy3.8'
# python_arch: 'x64'
# tox_env: 'pypy38'
# os: 'ubuntu-latest'
# - name: 'pypy38 (macos)'
# python: 'pypy-3.8'
# toxpython: 'pypy3.8'
# python_arch: 'arm64'
# tox_env: 'pypy38'
# os: 'macos-latest'
# - name: 'pypy39 (ubuntu)'
# python: 'pypy-3.9'
# toxpython: 'pypy3.9'
# python_arch: 'x64'
# tox_env: 'pypy39'
# os: 'ubuntu-latest'
# - name: 'pypy39 (macos)'
# python: 'pypy-3.9'
# toxpython: 'pypy3.9'
# python_arch: 'arm64'
# tox_env: 'pypy39'
# os: 'macos-latest'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
id: setup
with:
python-version: ${{ matrix.python }}
architecture: ${{ matrix.python_arch }}
- name: test [linux]
if: runner.os == 'Linux'
run: |
${{ steps.setup.outputs.python-path }} -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r ci/requirements.txt
tox -e ${{ matrix.tox_env }} -v
- name: test [macos]
if: runner.os == 'macOS'
run: |
${{ steps.setup.outputs.python-path }} -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r ci/requirements.txt
# Install the project in editable mode, which also installs its dependencies
pip install -e .
# Install test-specific dependencies
pip install pytest pytest-cov
# Run pytest directly, bypassing tox for the test execution step
pytest --cov --cov-report=term-missing --cov-report=xml -vv tests
- name: test [windows]
if: runner.os == 'Windows'
shell: pwsh
run: |
${{ steps.setup.outputs.python-path }} -m venv .venv
. .venv\Scripts\activate
python -m pip install --upgrade pip
pip install -r ci/requirements.txt
tox -e ${{ matrix.tox_env }} -v
coveralls:
name: Upload coverage to Coveralls
if: github.ref == 'refs/heads/main'
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
id: setup
with:
python-version: '3.11'
architecture: 'x64'
- name: generate coverage report
run: |
${{ steps.setup.outputs.python-path }} -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r ci/requirements.txt
tox -e py311
- name: Coveralls GitHub Action
uses: coverallsapp/[email protected]
deploy_docs:
name: Deploy docs to GitHub Pages
if: github.ref == 'refs/heads/main' # Prevent from running on PRs, tags
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
id: setup
with:
python-version: '3.11'
architecture: 'x64'
- name: generate docs
run: |
${{ steps.setup.outputs.python-path }} -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r ci/requirements.txt
tox -e docs -v
cp -r dist/docs _site/
- name: Fix permissions # https://github.com/actions/upload-pages-artifact#file-permissions
run: |
chmod -c -R +rX "_site/" | while read line; do
echo "::warning title=Invalid file permissions automatically fixed::$line"
done
- name: upload artifact
uses: actions/upload-pages-artifact@v3
- name: deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4