refactor: add ruff linting & fix initial violations #90
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: "CI" | |
on: | |
push: | |
pull_request: | |
defaults: | |
run: | |
shell: bash | |
permissions: | |
contents: read | |
concurrency: | |
group: "${{ github.workflow }}-${{ github.ref }}" | |
cancel-in-progress: true | |
jobs: | |
format: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: chartboost/ruff-action@v1 | |
with: | |
args: 'format --check' | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: chartboost/ruff-action@v1 | |
tests: | |
name: "Python ${{ matrix.python }} on ${{ matrix.os }}" | |
runs-on: "${{ matrix.os }}-${{ matrix.os-version || 'latest' }}" | |
env: | |
MATRIX_ID: "${{ matrix.python }}.${{ matrix.os }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu | |
- macos | |
- windows | |
python: | |
# When changing this list, be sure to check the [gh] list in | |
# tox.ini so that tox will run properly. | |
- "3.7" | |
- "3.8" | |
- "3.9" | |
- "3.10" | |
- "3.11" | |
- "3.12" | |
include: | |
- python: "3.7" | |
os: "macos" | |
os-version: "13" | |
- python: "3.8" | |
os: "macos" | |
os-version: "13" | |
- python: "3.9" | |
os: "macos" | |
os-version: "13" | |
steps: | |
- name: "Check out the repo" | |
uses: "actions/checkout@v4" | |
- name: "Set up Python" | |
uses: "actions/setup-python@v5" | |
with: | |
python-version: "${{ matrix.python }}" | |
- name: "Install dependencies" | |
run: | | |
python -m pip install -r requirements.pip | |
- name: "Run tox for ${{ matrix.python }}" | |
run: | | |
python -m tox | |
python -m coverage debug data | |
- name: "Upload coverage data" | |
uses: actions/upload-artifact@v4 | |
with: | |
name: covdata-${{ env.MATRIX_ID }} | |
path: .coverage.* | |
combine: | |
name: "Combine and report coverage" | |
needs: tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Check out the repo" | |
uses: "actions/checkout@v4" | |
with: | |
fetch-depth: "0" | |
- name: "Set up Python" | |
uses: "actions/setup-python@v5" | |
with: | |
python-version: "3.8" | |
- name: "Install dependencies" | |
run: | | |
python -m pip install -r requirements.pip | |
- name: "Download coverage data" | |
uses: actions/download-artifact@v4 | |
with: | |
pattern: covdata-* | |
merge-multiple: true | |
- name: "Combine and report" | |
run: | | |
python -m coverage combine | |
python -m coverage report -m |