Skip to content

test(LAB-3168): adjust coverage threshold for pytest to be inclusive #6479

test(LAB-3168): adjust coverage threshold for pytest to be inclusive

test(LAB-3168): adjust coverage threshold for pytest to be inclusive #6479

Workflow file for this run

name: CI
on: [push]
jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.8
cache: 'pip'
- uses: pre-commit/[email protected]
pylint:
runs-on: ubuntu-latest
name: Pylint test
strategy:
matrix:
python-version: ['3.8', '3.12']
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]"
- name: Analysing the code with pylint
run: |
pylint --rcfile=.pylintrc src/kili
pyright:
runs-on: ubuntu-latest
strategy:
matrix:
version: ['3.8', '3.12']
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.version }}
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]"
- name: Run pyright
run: pyright .
unit-integration-test:
timeout-minutes: 15
name: Unit and integration tests
strategy:
matrix:
include:
- os: ubuntu-latest
python-version: 3.8
- os: windows-latest
python-version: 3.8
- os: ubuntu-latest
python-version: 3.12
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]"
- name: Unit and integration tests
run: pytest -n auto -ra -sv --color yes --code-highlight yes --durations=15 -vv --ignore tests/e2e/ --cov=src/kili --cov-report=term-missing --cov-config=.coveragerc --cov-fail-under=82.99
markdown-link-check:
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: lycheeverse/[email protected]
with:
fail: true
debug: false
args: "-qq --no-progress --insecure './**/*.md' './src/kili/**/*.py'"
build-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.8
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build twine
- name: Build
run: |
python -m build
- name: Test the Build
run: |
python -m pip install . # to install dependencies
python -m pip uninstall -y kili
python -m pip install --find-links=dist --no-index kili
python -c 'from kili.client import Kili; k=Kili(); print("Everything OK!")'
env:
KILI_API_ENDPOINT: https://cloud.kili-technology.com/api/label/v2/graphql
KILI_API_KEY: ${{ secrets.KILI_USER_API_KEY_PROD }}
doc-build-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.8
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]"
- name: Build
run: |
mkdocs build
- name: Look for Warnings
run: |
mkdocs build 2>&1 | tee doc-build.log
if grep -q "WARNING" doc-build.log; then
echo $(grep "WARNING" doc-build.log)
echo "::error::Documentation build completed with warnings"
exit 1
else
echo "Documentation build completed successfully"
fi
find-dead-code:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.8
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]"
- name: Find dead code with vulture
run: vulture src/kili tests 2>&1 | tee dead_code.txt
- name: Find dead code with dead
run: dead 2>&1 | tee -a dead_code.txt
- name: Filter dead code
run: |
cat dead_code.txt | \
grep -e "src/kili" | \
grep -v \
-e "is only referenced in tests" \
-e "_ is never read" \
-e "affected_rows" \
-e "internal" \
-e "src/kili/client.py" \
-e "src/kili/core/graphql/ws_graphql_client" \
-e "src/kili/domain/annotation.py" \
-e "src/kili/domain/ontology.py" \
-e "src/kili/domain/project.py" \
-e "src/kili/entrypoints" \
-e "src/kili/orm" \
-e "src/kili/services" \
-e "src/kili/types.py" \
> dead_code_filtered.txt || true
- name: Crash if dead code found
run: |
if [ $(cat dead_code_filtered.txt | wc -l) -gt 0 ]; then
cat dead_code_filtered.txt
exit 1
else
echo "No dead code found"
fi