enable ruff linter #1970
This file contains hidden or 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: test | |
| on: | |
| push: | |
| branches-ignore: [release-test-*] | |
| pull_request: | |
| branches: [master] | |
| workflow_call: | |
| inputs: | |
| release-artifact-id: | |
| required: false | |
| type: string | |
| default: '' | |
| description: The artifact-id to run the tests against. | |
| disable-format-check: | |
| type: string | |
| default: '' | |
| description: Disable ruff linting and ruff check if it is a non empty value | |
| jobs: | |
| test: | |
| runs-on: ${{ matrix.os }} | |
| continue-on-error: ${{ matrix.experimental }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest] | |
| python-version: ['3.11', '3.12', '3.13'] | |
| deps: [newest-deps] | |
| experimental: [false] | |
| include: | |
| - os: ubuntu-latest | |
| python-version: '3.14-dev' | |
| deps: newest-deps | |
| experimental: true | |
| - os: ubuntu-latest | |
| python-version: '3.13' | |
| deps: minimal-deps | |
| experimental: false | |
| - os: macos-latest | |
| python-version: '3.13' | |
| deps: newest-deps | |
| experimental: true | |
| fail-fast: false | |
| steps: | |
| - name: Bash version | |
| run: bash --version | |
| - name: Checkout code | |
| uses: pkgcore/gh-actions/get-source@main | |
| with: | |
| artifact-id: ${{ inputs.release-artifact-id }} | |
| - name: Install bash 5.3 | |
| uses: pkgcore/gh-actions/bash-5.3@main | |
| # experimental targets generally lack lxml wheels | |
| - name: Install libxml2 and libxslt development packages | |
| if: ${{ matrix.experimental && matrix.os != 'macos-latest' }} | |
| run: sudo apt install libxml2-dev libxslt-dev python3-dev | |
| # macos needs newer bash | |
| - name: Install macos deps | |
| if: ${{ matrix.os == 'macos-latest' }} | |
| run: | | |
| brew install bash gnu-sed gpatch | |
| # enable gnu-sed usage as "sed" | |
| echo "/opt/homebrew/opt/gnu-sed/libexec/gnubin" >> $GITHUB_PATH | |
| # enable gpatch usage as "sed" | |
| echo "/opt/homebrew/opt/gpatch/libexec/gnubin" >> $GITHUB_PATH | |
| - name: Install non-python deps | |
| if: ${{ matrix.os == 'ubuntu-latest' }} | |
| run: | | |
| sudo apt install cpanminus | |
| # dep for perl checks | |
| sudo cpanm --quiet --notest Gentoo::PerlMod::Version | |
| - name: Pin dependencies to minimal versions | |
| if: ${{ matrix.deps == 'minimal-deps' }} | |
| run: sed -e '/^requires-python/!s/~=/==/' -i pyproject.toml | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'pip' | |
| cache-dependency-path: pyproject.toml | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install ".[test]" pytest-github-actions-annotate-failures | |
| - name: Test with pytest | |
| env: | |
| PY_COLORS: 1 # forcibly enable pytest colors | |
| run: pytest --cov --cov-report=term --cov-report=xml -v | |
| - name: Submit code coverage to codecov | |
| if: ${{ matrix.os == 'ubuntu-latest' }} | |
| uses: codecov/codecov-action@v3 | |
| with: | |
| files: ./coverage.xml | |
| lint: | |
| runs-on: ubuntu-latest | |
| if: inputs.disable-format-check == '' | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install bash 5.3 | |
| uses: pkgcore/gh-actions/bash-5.3@main | |
| - name: Set up Python 3 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.x' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install . pylint | |
| - name: Run linting tools | |
| run: pylint --exit-zero src/pkgcheck | |
| - uses: astral-sh/ruff-action@v3 | |
| with: | |
| args: "check --check --diff" | |
| format: | |
| runs-on: ubuntu-latest | |
| if: inputs.disable-format-check == '' | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - uses: astral-sh/ruff-action@v3 | |
| with: | |
| args: "format --check --diff" |