CI pipeline - Nidvue Teamwork¶
Owner: Technical Writer.
Related: Home · CLI reference · Architecture
The same pipeline runs in GitHub Actions and locally. Each step has a make
target; the underlying command is shown so it can be run without make.
One-shot¶
Runs lint, type-check, tests, build/verify, privacy scan, docs build, link check and the commit-identity audit in order, stopping at the first failure.
Steps and targets¶
| Target | Underlying command | What it proves |
|---|---|---|
make lint |
ruff check . + ruff format --check . |
Style, import order and formatting. |
make typecheck |
mypy src/teamwork |
Type report (non-blocking in CI). |
make test |
pytest -q |
Unit, integration and acceptance tests. |
make build |
python -m build |
An sdist and a wheel are produced. |
make verify |
python scripts/verify_release.py |
The wheel bundles the skill and installs cleanly. |
make privacy |
python scripts/privacy_scan.py --tree --history |
No personal data, credentials, agent-host configuration or local state in the tree, the index or the history. |
make docs |
python -m mkdocs build --strict |
The docs site builds with no warnings. |
make links |
python scripts/teamwork.py links |
No broken links, bare URLs or missing back-links. |
make identity |
python scripts/teamwork.py identity --audit |
Every team commit is authored and committed by its role. |
make selftest |
python scripts/teamwork.py selftest |
The installed engine passes its smoke check. |
make clean |
- | Remove build output and caches. |
Make wrappers
The Makefile is a convenience wrapper over these commands. If a target is
not present in your checkout, run the command in the middle column directly.
Environment setup¶
$ python -m venv .venv
$ . .venv/bin/activate # Windows: .venv\Scripts\activate
$ python -m pip install -e ".[dev]"
$ python -m pip install -r docs/requirements.txt
The dev extra installs pytest, ruff and mypy; docs/requirements.txt
installs mkdocs-material.
What CI runs¶
.github/workflows/ci.yml runs the jobs below; each maps to a make target:
| Job | Matrix | Step |
|---|---|---|
lint |
ubuntu | make lint then make identity |
typecheck |
ubuntu | make typecheck (non-blocking report) |
test |
ubuntu/macos/windows × Python 3.9/3.11/3.13, plus 3.10/3.12 on ubuntu | make test |
build |
ubuntu | make build then make verify |
privacy |
ubuntu | make privacy |
docs |
ubuntu | make links then make docs |
docs.yml builds and deploys the site to GitHub Pages on main; release.yml
runs on v* tags and produces the wheel, sdist, checksums and SBOM.
Reproduce a CI failure locally¶
- Check out the same revision.
- Run the target for the failing job, for example
make test. - Fix, then re-run
make cibefore opening a PR.
The test job uses the same command as make test; a difference between local
and CI usually means a missing dependency or a platform-specific path.