Skip to content

Add lecture notebook smoke tests and GitHub Actions workflow - #5

Merged
lawrennd merged 3 commits into
gh-pagesfrom
ci/notebook-smoke
Oct 18, 2026
Merged

lawrennd merged 3 commits into
gh-pagesfrom
ci/notebook-smoke

Conversation

@lawrennd

Copy link
Copy Markdown
Contributor

Summary

  • Check in scripts/smoke_notebooks.py: nbclient runner with Agg backend, mocked stdin, capped GPy/DeepGP optimize, and short-circuited ipywidgets.interact / notutils.display_plots so interactive lecture cells do not hang in CI.
  • Add requirements-smoke.txt for a reproducible smoke environment (GPy, PyDeepGP, mlai, pods, notutils, emukit, …).
  • Add .github/workflows/notebook-smoke.yml: runs on PRs that touch notebooks/smoke files, weekly schedule, and workflow_dispatch (optional --only prefixes). Uploads _notebooks/test-results as an artifact.

Test plan

  • Local: python scripts/smoke_notebooks.py --only 01 06 → 2/2 passed
  • After merge/enable Actions: run workflow_dispatch with empty only for the full 13-notebook suite
  • Confirm artifact notebook-smoke-results contains summary.json
  • Optional: PR that only touches README should not trigger; PR that touches _notebooks/*.ipynb should

Pins a CI-safe nbclient runner with stdin/widget/optimize caps so PRs that touch notebooks can catch runtime regressions without hanging on interactive cells.
Pin daft-pgm (not PyPI daft) and pre-create lecture diagram directories so notebook writes do not fail with FileNotFoundError.
@lawrennd
lawrennd merged commit 132983e into gh-pages Oct 18, 2026
1 check failed
@lawrennd
lawrennd deleted the ci/notebook-smoke branch October 18, 2026 07:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant