Skip to content

Developer deborah

Developer deborah #70

Workflow file for this run

# SPDX-FileCopyrightText: 2026 The Botanu Authors
# SPDX-License-Identifier: Apache-2.0
name: CI
on:
push:
branches: [main, developer-deborah]
pull_request:
branches: [main]
permissions:
contents: read
jobs:
# -------------------------------------------------------------------
# Lint & format check
# -------------------------------------------------------------------
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: pip install ruff
- run: ruff check src/ tests/
- run: ruff format --check src/ tests/
# -------------------------------------------------------------------
# Type checking
# -------------------------------------------------------------------
typecheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: pip install -e ".[dev]"
- run: mypy src/botanu/
# -------------------------------------------------------------------
# Test matrix — Python 3.9 → 3.13
# -------------------------------------------------------------------
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # hatch-vcs needs full history
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: pip install -e ".[dev]"
- name: Run tests with coverage
run: pytest --cov=botanu --cov-report=xml --cov-report=term-missing
- name: Upload coverage
if: matrix.python-version == '3.12'
uses: codecov/codecov-action@v4
with:
file: coverage.xml
fail_ci_if_error: false
# -------------------------------------------------------------------
# Build verification — ensure the package builds cleanly
# -------------------------------------------------------------------
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: pip install build
- run: python -m build
- uses: actions/upload-artifact@v4
with:
name: dist
path: dist/
# -------------------------------------------------------------------
# DCO sign-off check
# -------------------------------------------------------------------
dco:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: DCO check
uses: christophebedard/dco-check@0.5.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}