* Add Open in Colab badges to tutorial notebooks
* docs: inject Colab badge via generate_colab_notebooks.py
Move the "Open in Colab" badge injection into the notebook generation
script so badges survive regeneration. The badge is prepended as the
first markdown cell in process_notebook.
* autogenerate notebooks
---------
Co-authored-by: Andre Manoel <amanoel@nvidia.com>
Co-authored-by: Johnny Greco <jogreco@nvidia.com>
* fix: cache notebook builds to avoid failures from flaky upstream models
The build-notebooks CI executes all tutorial notebooks on every run.
When an upstream model (e.g. black-forest-labs/flux.2-pro) is down, the
entire docs build fails even if no notebooks changed.
Add per-notebook caching based on source file SHA-256 hashes. Unchanged
notebooks are served from cache, and only modified ones are re-executed.
On the first CI run (empty cache), the workflow seeds the cache from the
last successful build artifact.
Also add a minimal test script (test_flux_image_gen.py) to reproduce the
flux.2-pro health check failure locally.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: address review comments on notebook caching
- Don't write .sha256 during seeding so changed notebooks are detected
- Rename TMPDIR to SEED_TMPDIR to avoid shadowing the POSIX env var
- Use portable sha256 helper (sha256sum with shasum fallback)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: only seed cache when truly empty, restore hash writing
Skip artifact seeding when a partial cache was restored (it already has
correct per-file hashes). Only seed + write current hashes when the
cache dir is completely empty (true bootstrapping).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: restrict artifact seed lookup to main branch
Prevents seeding from feature branch runs that may have different
notebook sources.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: add actions:read permission for artifact seeding
The seed step uses gh run list and gh run download which require
actions:read. Without it, these calls silently fail and the cold-start
cache bootstrapping never executes.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: only use notebook cache when called from build-docs
Scheduled Monday runs and manual workflow_dispatch should execute all
notebooks to catch regressions (e.g. library changes that break a
notebook). Caching is only used via workflow_call (from build-docs)
where the goal is fast, resilient doc deployment.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: use jq // empty to avoid "null" string on empty run list
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat: add use_cache input flag to notebook and docs workflows
Replace event_name-based cache logic with an explicit use_cache boolean
input. Defaults:
- build-notebooks: workflow_call=true, dispatch=false, schedule=false
- build-docs: dispatch=true (toggleable), release=false
This gives full control over caching from the GitHub Actions UI.
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>