STANDARDS.md binds every repository in the NAPALM org: one default branch, Conventional Commits, the device-types contract, test-driven development, clean-code limits, a quality ratchet for existing code, packaging rules and releases by tag to PyPI. napalm-standard holds what a tool can check: the conformance check (with release rules on a tag), the quality ratchet (ported from netOrk's quality_ratchet.py), and the Gitea release from the CHANGELOG section. .gitea/workflows/driver.yml is the CI every driver calls; template/ is a new driver's starting point and passes the check as it is.
33 lines
715 B
YAML
33 lines
715 B
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
python-version: ["3.11", "3.12", "3.13"]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: Install
|
|
run: |
|
|
python -m venv .venv
|
|
echo "$PWD/.venv/bin" >> "$GITHUB_PATH"
|
|
.venv/bin/pip install -q -e ".[dev]"
|
|
- name: Lint
|
|
run: |
|
|
ruff format --check .
|
|
ruff check .
|
|
- name: Types
|
|
run: mypy napalm_standard
|
|
- name: Tests
|
|
run: pytest -q --tb=short
|