mirror of
https://github.com/kuhyx/utils.git
synced 2026-11-10 22:47:14 +01:00
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
65 lines
2.2 KiB
YAML
65 lines
2.2 KiB
YAML
name: shared gate tests
|
|
|
|
# The gates in this repo are enforced in ~40 other repos, so a bug here is a
|
|
# bug everywhere at once. Until now `md_naming` had a test suite that no
|
|
# workflow ran; `dep_freshness` ships with one from day one.
|
|
#
|
|
# The dependency-freshness suite never touches the network -- every registry
|
|
# answer is a fixture, because the gate's worst failure mode (accepting a
|
|
# pre-release as "latest stable") fails GREEN and only a fixture can pin it.
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
shared-gate-tests:
|
|
name: gate unit tests
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.x"
|
|
|
|
- name: Install test dependencies
|
|
run: python -m pip install --upgrade pytest pytest-cov pyyaml packaging
|
|
|
|
- name: dep_freshness — 100% branch coverage on the gate itself
|
|
run: |
|
|
PYTHONPATH=. python -m pytest dep_freshness/tests -q \
|
|
--cov=dep_freshness --cov-branch \
|
|
--cov-report=term-missing \
|
|
--cov-fail-under=99
|
|
|
|
- name: md_naming
|
|
run: PYTHONPATH=. python -m pytest md_naming/tests -q
|
|
|
|
# Whole package at 100% branch: the gate is enforced in every repo and
|
|
# now reads a per-repo `.file-length-exempt`, whose fail-closed rule is
|
|
# exactly the kind of branch a partial suite would leave green by accident.
|
|
- name: file_length — 100% branch coverage on the gate itself
|
|
run: |
|
|
PYTHONPATH=. python -m pytest file_length/tests -q \
|
|
--cov=file_length --cov-branch \
|
|
--cov-report=term-missing \
|
|
--cov-fail-under=100
|
|
|
|
- name: repo_contract — 100% branch coverage on the gate itself
|
|
run: |
|
|
PYTHONPATH=. python -m pytest repo_contract/tests -q \
|
|
--cov=repo_contract --cov-branch \
|
|
--cov-report=term-missing \
|
|
--cov-fail-under=100
|
|
|
|
- name: coverage_gaps — 100% branch coverage on the lister
|
|
run: |
|
|
PYTHONPATH=. python -m pytest coverage_gaps/tests -q \
|
|
--cov=coverage_gaps --cov-branch \
|
|
--cov-report=term-missing \
|
|
--cov-fail-under=100
|