Skip to content

MNT: try to force dependabot to re-index us #409

MNT: try to force dependabot to re-index us

MNT: try to force dependabot to re-index us #409

Workflow file for this run

# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: Test
on:
push:
branches:
- master
- dev
pull_request:
schedule:
# run this on first day of the month at 3 am UTC
- cron: 0 3 1 * *
workflow_dispatch:
jobs:
build:
name: ${{ matrix.os }}, Python ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
python-version:
- '3.9'
- '3.10'
- '3.11'
- '3.12'
include:
- os: ubuntu-20.04
python-version: '3.9'
fail-fast: false
concurrency:
group: ${{ github.ref }}-${{ matrix.os }}-${{ matrix.python-version }}-build
cancel-in-progress: true
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- if: ${{ matrix.os == 'ubuntu-20.04' }}
name: Install minimal env
run: |
python -m pip install --upgrade pip
python -m pip install tomli tomli_w
python scripts/pin_requirements.py
python -m pip uninstall --yes tomli tomli_w
python -m pip install -e . --only-binary ':all:'
python -m pip install pytest pytest-mpl pytest-cov
- if: ${{ matrix.os != 'ubuntu-20.04' }}
name: Install full test env
run: |
python -m pip install --upgrade pip setuptools wheel
pip install -r requirements/dev.txt
- run: python -m pip freeze
- name: Test package
run: |
pytest --color=yes --mpl --cov --cov-config=pyproject.toml --cov-report=term-missing
- name: Upload coverage
run: |
curl -s https://codecov.io/bash | bash
type-check:
name: type check w/ Python ${{ matrix.python-version }}
strategy:
matrix:
python-version:
- '3.9'
- '3.12'
runs-on: ubuntu-latest
concurrency:
group: ${{ github.ref }}-${{ matrix.python-version }}-typecheck
cancel-in-progress: true
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Build
run: |
python -m pip install --upgrade pip
python -m pip install "."
python -m pip install -r requirements/typecheck.txt
- name: Run mypy
run: mypy cmasher
docs:
name: Build docs
runs-on: ubuntu-latest
concurrency:
group: ${{ github.ref }}-docs
cancel-in-progress: true
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.9'
- name: Setup env
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements/docs.txt
- run: python -m pip freeze
- name: Build
run: |
sphinx-build -M html docs/source site -W
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: site
path: site
check-manifest:
name: Check MANIFEST.in
runs-on: ubuntu-latest
concurrency:
group: ${{ github.ref }}-check_manifest
cancel-in-progress: true
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.x
- run: pipx run check-manifest
check-twine:
name: Test deployment
runs-on: ubuntu-latest
concurrency:
group: ${{ github.ref }}-check_twine
cancel-in-progress: true
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.x
- run: |
pipx run build --sdist --wheel
pipx run twine check dist/*
publish:
name: Publish to PyPI
runs-on: ubuntu-latest
needs:
- build
- check-manifest
- check-twine
- docs
- type-check
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.x
- name: Deploy package
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
pipx run build --sdist --wheel
pipx run twine upload dist/*