Skip to content

Bump ruff from 0.5.5 to 0.6.8 #374

Bump ruff from 0.5.5 to 0.6.8

Bump ruff from 0.5.5 to 0.6.8 #374

Workflow file for this run

name: Code quality tests
env:
ALL_PYTHON_VERSIONS: "['3.11', '3.12']"
CACHE_VERSION: 1
on:
pull_request:
branches:
- main
permissions:
pull-requests: write
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
info:
runs-on: ubuntu-latest
name: Collect information & changes data
outputs:
run_pipeline: ${{ steps.changes.outputs.core }}
python_versions: ${{ steps.info.outputs.python_versions }}
python_cache_key: ${{ steps.generate_python_cache_key.outputs.key }}
steps:
- name: Checkout code
uses: actions/[email protected]
- name: Filter for core changes
uses: dorny/[email protected]
id: changes
with:
filters: |
core:
- ./**/*.py
- .github/**/*.yml
- pyproject.toml
- name: Collect additional information
id: info
run: |
echo "python_versions: ${ALL_PYTHON_VERSIONS}"
echo "python_versions=${ALL_PYTHON_VERSIONS}" >> $GITHUB_OUTPUT
- name: Generate partial Python venv restore key
id: generate_python_cache_key
run: >-
echo "key=venv-${{ env.CACHE_VERSION }}-${{
hashFiles('pyproject.toml') }}" >> $GITHUB_OUTPUT
create-virtualenv:
name: Setup environment
runs-on: ubuntu-latest
needs: info
timeout-minutes: 30
if: needs.info.outputs.run_pipeline == 'true'
strategy:
matrix:
python-version: ${{ fromJSON(needs.info.outputs.python_versions) }}
steps:
- name: Checkout code
uses: actions/[email protected]
- name: Set up Python ${{ matrix.python-version }}
uses: actions/[email protected]
with:
python-version: ${{ matrix.python-version }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/[email protected]
with:
path: venv
lookup-only: true
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Install requirements
run: |
python -m venv venv
. venv/bin/activate
python3 -m pip install -e .'[dev]'
if: steps.cache-venv.outputs.cache-hit != 'true'
linter:
name: Run code linters
needs:
- create-virtualenv
- info
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
matrix:
python-version: ${{ fromJSON(needs.info.outputs.python_versions) }}
if: needs.info.outputs.run_pipeline == 'true'
steps:
- name: Checkout code
uses: actions/[email protected]
with:
fetch-depth: "2"
- name: Set up Python ${{ matrix.python-version }}
uses: actions/[email protected]
with:
python-version: ${{ matrix.python-version }}
- name: Restore full Python ${{ steps.python.outputs.python-version }} virtual environment
id: cache-venv
uses: actions/cache/[email protected]
with:
path: venv
fail-on-cache-miss: true
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Run ruff (fully)
run: |
. venv/bin/activate
pre-commit run --hook-stage manual ruff --all-files --show-diff-on-failure
- name: Run Black
run: |
. venv/bin/activate
black --check --fast --quiet --diff pyesef tests
- name: Run mypy
run: |
. venv/bin/activate
mypy pyesef
- name: Run pylint
run: |
. venv/bin/activate
pylint pyesef tests
pytest:
name: Run test suite
continue-on-error: true
needs:
- info
- create-virtualenv
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
matrix:
python-version: ${{ fromJSON(needs.info.outputs.python_versions) }}
if: needs.info.outputs.run_pipeline == 'true'
steps:
- name: Checkout code
uses: actions/[email protected]
- name: Set up Python ${{ matrix.python-version }}
uses: actions/[email protected]
with:
python-version: ${{ matrix.python-version }}
- name: Restore full Python ${{ steps.python.outputs.python-version }} virtual environment
id: cache-venv
uses: actions/cache/[email protected]
with:
path: venv
fail-on-cache-miss: true
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Run tests
run: |
. venv/bin/activate
export PYTEST_ARGS="--timeout=90 --cov pyesef --cov-report xml:coverage.xml"
pytest tests/ $PYTEST_ARGS
- name: Coveralls
uses: coverallsapp/[email protected]
with:
flag-name: run-${{ join(matrix.*, '-') }}
parallel: true
finish:
needs: pytest
if: ${{ always() }}
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
uses: coverallsapp/[email protected]
with:
parallel-finished: true
carryforward: "run-3.11,run-3.12"