mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-11-11 00:07:03 +01:00
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
68 lines
2.7 KiB
YAML
68 lines
2.7 KiB
YAML
name: Python tests
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- "python_pkg/lichess_bot/**"
|
|
- "python_pkg/**"
|
|
- "tests/**"
|
|
- "linux_configuration/tests/**"
|
|
# Both spellings: the root requirements.txt is a SYMLINK into meta/,
|
|
# and GitHub matches path filters against the changed path as git
|
|
# records it. Editing meta/requirements.txt therefore did NOT match
|
|
# "requirements.txt", so a dependency fix silently skipped this
|
|
# workflow and the red run stayed on an older commit.
|
|
- "requirements.txt"
|
|
- "meta/requirements.txt"
|
|
- "meta/requirements-test.txt"
|
|
- ".github/workflows/python-tests.yml"
|
|
pull_request:
|
|
branches: [main]
|
|
paths:
|
|
- "python_pkg/lichess_bot/**"
|
|
- "python_pkg/**"
|
|
- "tests/**"
|
|
- "linux_configuration/tests/**"
|
|
# Both spellings: the root requirements.txt is a SYMLINK into meta/,
|
|
# and GitHub matches path filters against the changed path as git
|
|
# records it. Editing meta/requirements.txt therefore did NOT match
|
|
# "requirements.txt", so a dependency fix silently skipped this
|
|
# workflow and the red run stayed on an older commit.
|
|
- "requirements.txt"
|
|
- "meta/requirements.txt"
|
|
- "meta/requirements-test.txt"
|
|
- ".github/workflows/python-tests.yml"
|
|
workflow_dispatch: {}
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.x"
|
|
# Cache the pip DOWNLOAD cache, keyed on the requirements file, so a
|
|
# run that changes nothing about dependencies reuses the wheels
|
|
# instead of re-fetching ~80 packages from PyPI. Points at
|
|
# meta/requirements.txt, not the root symlink: the cache key is
|
|
# hashed from the file at this path, and hashing a symlink is not
|
|
# the same as hashing its target.
|
|
cache: pip
|
|
cache-dependency-path: meta/requirements-test.txt
|
|
- name: Install system dependencies
|
|
run: |
|
|
set -euo pipefail
|
|
sudo apt-get update && sudo apt-get install -y librsvg2-bin
|
|
rsvg-convert --version
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
# The TEST subset, not the full requirements.txt. This job runs
|
|
# pytest and nothing else, so the ~62 linters and formatters in the
|
|
# full list were pure install time. See meta/requirements-test.txt.
|
|
pip install -r meta/requirements-test.txt
|
|
- name: Run pytest with coverage
|
|
run: pytest --cov=python_pkg --cov-branch --cov-report=term-missing --cov-fail-under=100
|