Skip to content

Merge pull request #246 from pavdmyt/upd-ubuntu-version #98

Merge pull request #246 from pavdmyt/upd-ubuntu-version

Merge pull request #246 from pavdmyt/upd-ubuntu-version #98

name: lint-test-coverage
on:
push:
branches: ["master"]
pull_request:
branches: ["master"]
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-24.04
strategy:
matrix:
python-version: ["3.12"]
steps:
- name: checkout-code
uses: actions/checkout@v4
- name: prepare-python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: install-poetry
uses: snok/install-poetry@v1
with:
version: 1.8.3
- name: install-dependencies
run: |
poetry install
- name: check-fmt
run: |
make check-fmt
- name: lint-code
run: |
make flake
make lint
- name: semgrep
run: |
make semgrep
mypy:
needs: lint
runs-on: ubuntu-24.04
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
steps:
- name: checkout-code
uses: actions/checkout@v4
- name: prepare-python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: install-poetry
uses: snok/install-poetry@v1
with:
version: 1.8.3
- name: install-dependencies
run: |
poetry install
- name: mypy checks
run: |
make mypy
test:
needs: [lint, mypy]
runs-on: ubuntu-24.04
env:
PYTHONHASHSEED: 0
USING_COVERAGE: '3.12'
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "pypy-3.10"]
steps:
- name: checkout-code
uses: actions/checkout@v4
- name: prepare-python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
# Normal Python
- name: install-poetry
if: "!contains(matrix.python-version, 'pypy-3.10')"
uses: snok/install-poetry@v1
with:
version: 1.8.3
- name: install-dependencies
if: "!contains(matrix.python-version, 'pypy-3.10')"
run: |
poetry install
- name: run-tests
if: "!contains(matrix.python-version, 'pypy-3.10')"
run: |
make test
# PyPy
- name: install-dependencies
if: "contains(matrix.python-version, 'pypy-3.10')"
run: |
pip install termcolor==2.3.0 pytest==8.1.2 pytest-xdist==3.6.1
- name: run-tests
if: "contains(matrix.python-version, 'pypy-3.10')"
run: |
py.test -n auto -v
# Coverage
- name: create-coverage-report
if: "contains(env.USING_COVERAGE, matrix.python-version)"
run: |
make coverage
- name: submit-to-codecov-io
if: "contains(env.USING_COVERAGE, matrix.python-version)"
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}