docs: add VHS demo screencast pipeline#109
Draft
rominf wants to merge 2 commits into
Draft
Conversation
45b5eda to
b7a01d8
Compare
6d309d7 to
204c4e8
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>
b7a01d8 to
804705b
Compare
Signed-off-by: Roman Inflianskas <Roman.Inflianskas@amd.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Automates terminal demo GIFs for the README so they're generated in CI and never committed to source branches.
docs/tapes/) for four demos:version,engines list,services list, and one-shotchat.demo-gifsworkflow that builds the binaries, renders each tape, and publishes GIFs to an orphanmediabranch (force-pushed → single commit, old blobs GC'd). The README embeds them by absolute raw URL.chat,services) reuse this repo's e2e mock OpenAI server through a new standalonerocm-demo-envbinary: it boots the mock, plants a managed-service record into an isolated config, and prints the env that pointsrocmat it. No GPU or real model — renders are deterministic.write_service_record(used by both the cucumberWorldand the demo runner) so the two can't drift.ROCM_MOCK_CHAT_REPLYso screencasts read naturally instead of showing the test-only stub.Why
The README has no visual of the CLI in action. Purpose-built demos give reviewers and users an at-a-glance feel for
chat/serviceswithout anyone maintaining hand-recorded GIFs — and without bloatingmainwith binaries.Triggers
workflow_dispatch+ on published release (never on PRs — rendering is slow and would churn the branch). The release tag doubles as an image-cache buster for GitHub's proxy.Verification
rocm+rocm-demo-envbuild; e2e test target still compiles with the refactoredWorld.demo-env.sh→rocm services listshows the mock service;rocm chat --promptreturns the custom reply; the EXIT trap stops the server (no leak).Dependency / scope
mainand retarget.demo-gifsworkflow runs once, the README image links 404 (noted inline in the README).Risk
Low — no product code paths change. The only change to existing test code is extracting a shared helper (behavior-preserving) and an env-gated mock reply that defaults to the current string.