docs: add VHS demo screencast pipeline#109
Conversation
45b5eda to
b7a01d8
Compare
6d309d7 to
204c4e8
Compare
b7a01d8 to
804705b
Compare
Generate terminal demo GIFs for the README from VHS tapes, rendered in CI and published to an orphan `media` branch so no binaries land in the source history. The README embeds them by absolute raw URL. Tapes are pure command sequences; all setup (build dir on PATH, isolated config, the mock server) is done by docs/tapes/render.sh BEFORE vhs runs. This is deliberate: VHS types on a fixed clock and never waits for a command to return, so setup done inside a tape races the typing. Server-backed demos (chat, services) reuse the e2e harness's mock OpenAI server via a new standalone `rocm-demo-env` binary: it starts the mock, plants a managed-service record into an isolated config, and prints the env that points `rocm` at it — no GPU or real model needed. The record schema is shared with the cucumber World via `write_service_record` so the two can't drift. The mock ignores SIGINT/SIGHUP (VHS/ttyd emit some during terminal setup) and stops on SIGTERM, so it survives until the tape runs. Its chat reply is overridable via ROCM_MOCK_CHAT_REPLY. Rendering runs on workflow_dispatch and on release (never on PRs, where it would be slow and churn the branch); the release tag doubles as an image-cache buster. Stacked on #69 (the e2e harness this reuses); keep as draft until it lands. Signed-off-by: Roman Inflianskas <Roman.Inflianskas@amd.com>
Signed-off-by: Roman Inflianskas <Roman.Inflianskas@amd.com>
760e977 to
5b889ae
Compare
Signed-off-by: Roman Inflianskas <Roman.Inflianskas@amd.com>
Signed-off-by: Roman Inflianskas <Roman.Inflianskas@amd.com>
Signed-off-by: Roman Inflianskas <Roman.Inflianskas@amd.com>
|
Blocking / must-fix before merge to main
peaceiris/actions-gh-pages publishes publish_dir (./rendered-media) with force_orphan; it does not consult docs/media/.gitignore. The staging copy is needed precisely because docs/media is git-ignored — the "Pages action honors that ignore file" clause is inaccurate and could mislead a future maintainer. Reword to just explain the staging copy.
Nits (optional)
|
|
|
||
| jobs: | ||
| render: | ||
| runs-on: ubuntu-latest |
There was a problem hiding this comment.
would it make sense to pin to a version in case version update causes breakage in the future.
There was a problem hiding this comment.
Yes—pinned actions/checkout to the repository-standard full SHA for v6.0.3 in 3523dc3. I also ran the full pre-push gates successfully. Leaving this open for your re-review.
clydehoang1
left a comment
There was a problem hiding this comment.
I can pre-approve assuming the security and quality checks are addressed.
Signed-off-by: Roman Inflianskas <Roman.Inflianskas@amd.com>
|
Addressed the review in
I left the existing commits intact because this repository squash-merges PRs, so the temporary scaffolding commits will not enter The full pre-push suite passes after a clean rebuild: YAML validation, formatting, clippy, workspace tests, license checks, and signature/sign-off verification. CodeQL alerts 716 and 717 were independently security-reviewed and dismissed as false positives; their threads remain open for re-review. After merge, the workflow should be dispatched once from |
Summary
Automates terminal demo GIFs for the README so they are generated in CI and never committed to source branches.
demo-gifsworkflow that builds the binaries, renders both tapes, and publishes the GIFs to an orphanmediabranch. The README embeds them by absolute raw URL.rocm-demo-envhelper for the server-backed CLI steps. It creates an isolated service record and exposes the environment needed byrocm, without a GPU or real model.ROCM_MOCK_CHAT_REPLYso the screencast uses natural demo text while tests retain their existing default.Why
The README has no visual overview of the CLI. Deterministic, CI-rendered demos give users an at-a-glance view of the CLI and Console without maintaining hand-recorded GIFs or adding binary artifacts to
main.Triggers
The workflow runs on
workflow_dispatchand published releases, never on pull requests. Rendering is comparatively slow and would otherwise churn the generated-media branch. Release tags also provide image-cache busting for GitHub's proxy.Verification
cargo test -p xtaskpasses, including demo selection and readiness parsing.rocm-demo-envbuilds successfully and the e2e test target compiles with the shared service-record helper.demo-gifsworkflow has rendered and published both composite demos successfully.Dependency / scope
The e2e harness dependency from #69 has merged. This PR does not change product runtime paths; it adds documentation tooling, deterministic mock-backed demos, and generated-media publication.
Risk
Low. Existing test behavior is preserved by default, and generated GIFs remain isolated from source history.