re-tag versionAdded
for max_iter
: not breaking change
#238
Workflow file for this run
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@v5 | |
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 check . --output-format github | |
PyLint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install --upgrade "pylint >= 3.0.0" | |
- name: Install develop | |
run: | | |
pip install -e . | |
- name: Lint with PyLint | |
run: | | |
pylint logwrap | |
MyPy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install --upgrade -r mypy_requirements.txt | |
- name: Install develop | |
run: | | |
pip install -e . | |
- name: Lint with MyPy | |
run: | | |
mypy --strict logwrap | |
Black: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
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 logwrap | |
Refurb: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
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 --format github logwrap | |
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@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip wheel | |
pip install --upgrade -r pytest_requirements.txt | |
- name: Install develop | |
run: | | |
pip install -e . | |
- name: Test with pytest | |
run: | | |
py.test --cov-report= --cov=logwrap test | |
coverage report -m --fail-under 85 | |
coverage xml | |
- 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@v5 | |
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@v4 | |
with: | |
path: dist/* | |
name: built-sdist | |
Metadata: | |
name: Validate metadata | |
runs-on: ubuntu-latest | |
needs: [ Build ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
cache: 'pip' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install --upgrade twine | |
- uses: actions/[email protected] | |
with: | |
pattern: built-* | |
merge-multiple: true | |
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/logwrap | |
permissions: | |
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing | |
steps: | |
- uses: actions/[email protected] | |
with: | |
pattern: built-* | |
merge-multiple: true | |
path: dist | |
- name: Publish package distributions to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 |