Mention API extension in readme #257
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Python package | |
on: | |
push: | |
branches-ignore: | |
- 'dependabot/**' | |
tags-ignore: | |
- '*.[0-9][ab][0-9]' | |
pull_request: {} | |
jobs: | |
PEP8: | |
name: Check with Ruff | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install --upgrade ruff | |
- name: Lint with ruff | |
run: | | |
ruff . --output-format github | |
PyLint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install --upgrade -r CI_REQUIREMENTS.txt | |
pip install --upgrade "pylint >= 3.0.0" | |
- name: Install develop | |
run: | | |
pip install -e . | |
- name: Lint with PyLint | |
run: | | |
pylint exec_helpers | |
MyPy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install --upgrade -r CI_REQUIREMENTS.txt | |
pip install --upgrade -r mypy_requirements.txt | |
- name: Install develop | |
run: | | |
pip install -e . | |
- name: Lint with MyPy | |
run: | | |
mypy --strict --install-types --non-interactive exec_helpers | |
Black: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install --upgrade black regex | |
- name: Check code style with black | |
run: | | |
black --check exec_helpers | |
Refurb: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install --upgrade refurb | |
- name: Lint with refurb | |
run: | | |
refurb exec_helpers | |
Test: | |
needs: [PEP8, PyLint, MyPy, Black, Refurb] # isort is broken | |
runs-on: ${{ matrix.os }} | |
strategy: | |
max-parallel: 6 | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
name: "Script based python ${{ matrix.python-version }} on ${{ matrix.os }}" | |
steps: | |
- uses: actions/checkout@v4 | |
- 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 pip wheel | |
pip install --upgrade -r CI_REQUIREMENTS.txt | |
pip install --upgrade -r pytest_requirements.txt | |
- name: Install develop | |
run: | | |
pip install -e . | |
- name: Test with pytest | |
run: | | |
py.test --cov-report= --cov=exec_helpers test | |
coverage report -m | |
coverage xml | |
# coverage report -m --fail-under 85 | |
- name: Coveralls Parallel | |
uses: coverallsapp/github-action@v2 | |
with: | |
flag-name: run-${{ matrix.python-version }}-${{ matrix.os }} | |
parallel: true | |
file: coverage.xml | |
UploadCoverage: | |
name: Upload coverage to Coveralls | |
needs: [ Test ] | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Coveralls Finished | |
uses: coverallsapp/github-action@v2 | |
with: | |
parallel-finished: true | |
Build: | |
needs: [ Test ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # need for setuptools_scm | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install --upgrade twine build | |
- name: Build package | |
run: | | |
python -m build | |
- uses: actions/upload-artifact@v3 | |
with: | |
path: dist/* | |
name: wheels | |
Metadata: | |
name: Validate metadata | |
runs-on: ubuntu-latest | |
needs: [ Build ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
cache: 'pip' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install --upgrade twine | |
- uses: actions/download-artifact@v3 | |
with: | |
# unpacks default artifact into dist/ | |
# if `name: wheels` is omitted, the action will create extra parent dir | |
name: wheels | |
path: dist | |
- name: Validate metadata | |
run: | | |
twine check dist/* | |
Deploy: | |
needs: [Build, Metadata] | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') | |
runs-on: ubuntu-latest | |
environment: | |
name: pypi | |
url: https://pypi.org/p/exec-helpers | |
permissions: | |
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing | |
steps: | |
- uses: actions/download-artifact@v3 | |
with: | |
# unpacks default artifact into dist/ | |
# if `name: artifact` is omitted, the action will create extra parent dir | |
name: wheels | |
path: dist | |
- name: Publish package distributions to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 |