- Replaced legacy typing (Optional, List, Type, Union, Tuple) with PEP 604/585 equivalents. - Added pyproject.toml with configurations for hatch-vcs, mypy, ruff, and codespell. - Added CI workflows for formatting, linting, type checking, and spelling. - Added CD workflow for building and uploading plugin artifacts on push to master and version tags. - Added dependency auditing workflow with pip-audit. - Added comprehensive docstrings and inline comments across all modules. - Fixed User-Agent header using hardcoded version instead of actual plugin version. - Fixed grammar and terminology in log messages and comments. - Removed unreachable error handling branch in unsubscribe command.
83 lines
2.2 KiB
YAML
83 lines
2.2 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
formatting:
|
|
name: Formatting
|
|
runs-on: logaldeveloper-archlinux
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
|
|
- name: Cache uv packages
|
|
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
|
|
with:
|
|
path: ~/.cache/uv
|
|
key: uv-${{ hashFiles('uv.lock') }}
|
|
|
|
- name: Install dependencies
|
|
run: uv sync --frozen
|
|
|
|
- name: Check formatting with Ruff
|
|
run: uv run ruff format --check --diff .
|
|
|
|
linting:
|
|
name: Linting
|
|
runs-on: logaldeveloper-archlinux
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
|
|
- name: Cache uv packages
|
|
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
|
|
with:
|
|
path: ~/.cache/uv
|
|
key: uv-${{ hashFiles('uv.lock') }}
|
|
|
|
- name: Install dependencies
|
|
run: uv sync --frozen
|
|
|
|
- name: Check linting with Ruff
|
|
run: uv run ruff check .
|
|
|
|
type-checking:
|
|
name: Type Checking
|
|
runs-on: logaldeveloper-archlinux
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
|
|
- name: Cache uv packages
|
|
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
|
|
with:
|
|
path: ~/.cache/uv
|
|
key: uv-${{ hashFiles('uv.lock') }}
|
|
|
|
- name: Install dependencies
|
|
run: uv sync --frozen
|
|
|
|
- name: Check types with Mypy
|
|
run: uv run mypy owncastsentry/
|
|
|
|
spelling:
|
|
name: Spelling
|
|
runs-on: logaldeveloper-archlinux
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
|
|
- name: Cache uv packages
|
|
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
|
|
with:
|
|
path: ~/.cache/uv
|
|
key: uv-${{ hashFiles('uv.lock') }}
|
|
|
|
- name: Install dependencies
|
|
run: uv sync --frozen
|
|
|
|
- name: Check spelling with codespell
|
|
run: uv run codespell
|