Add CI/CD workflows for automated notebook validation and branch-specific GitHub Pages deployment #3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements automated building, testing, and publishing of Jupyter notebooks as branch-specific HTML pages on GitHub Pages.
Workflows
.github/workflows/ci.yml- Validates code on pushes/PRs to main: runs flake8, pytest, and executes all notebooks with 600s timeout.github/workflows/deploy-notebooks-pages.yml- Builds and deploys HTML notebooks togh-pages/<branch-name>/on every push to any branch; generates index listing all published branchesBuild Infrastructure
scripts/build_notebooks.py- Discovers notebooks recursively, executes them via nbconvert, exports to HTML preserving folder structure, creates error placeholders for failed notebooksrequirements.txt- Dependencies: jupyter, nbconvert, nbformat, pytest, flake8, black, pre-commitDockerfile- Python 3.11 slim image with all dependencies.pre-commit-config.yaml- Hooks for black and flake8.gitignore- Excludes.venv,__pycache__,site/,gh-pages/,.ipynb_checkpoints/Usage
Local build:
Enable GitHub Pages in Settings → Pages (source: gh-pages branch). Branch pages available at
https://<owner>.github.io/<repo>/<branch>/.Original prompt
Add CI, notebook build and deployment workflows, supporting scripts, tooling, and documentation to enable building, testing, linting, and publishing Jupyter notebooks as branch-specific HTML pages on GitHub Pages.
Files to add (exact contents provided):