From 1c924c3c126df2c93d286b8d3533183b25ead763 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 5 May 2026 06:30:58 +0100 Subject: [PATCH] ci: link Mantis status reaction videos --- .../mantis-discord-status-reactions.yml | 17 ++++++++++++++--- docs/concepts/mantis.md | 4 +++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/.github/workflows/mantis-discord-status-reactions.yml b/.github/workflows/mantis-discord-status-reactions.yml index de875f5bcb0..45a317ac8db 100644 --- a/.github/workflows/mantis-discord-status-reactions.yml +++ b/.github/workflows/mantis-discord-status-reactions.yml @@ -401,6 +401,7 @@ jobs: ) pnpm "${args[@]}" cp "$desktop_dir/desktop-browser-smoke.png" "$root/$lane/discord-status-reactions-tool-only-desktop.png" + cp "$desktop_dir/desktop-browser-smoke.mp4" "$root/$lane/discord-status-reactions-tool-only-desktop.mp4" } capture_desktop_lane baseline @@ -431,6 +432,8 @@ jobs: echo "- Candidate screenshot: \`candidate/discord-status-reactions-tool-only-timeline.png\`" echo "- Baseline desktop screenshot: \`baseline/discord-status-reactions-tool-only-desktop.png\`" echo "- Candidate desktop screenshot: \`candidate/discord-status-reactions-tool-only-desktop.png\`" + echo "- Baseline desktop video: \`baseline/discord-status-reactions-tool-only-desktop.mp4\`" + echo "- Candidate desktop video: \`candidate/discord-status-reactions-tool-only-desktop.mp4\`" } > "$root/mantis-report.md" cat "$root/mantis-report.md" >> "$GITHUB_STEP_SUMMARY" @@ -491,7 +494,9 @@ jobs: "$root/baseline/discord-status-reactions-tool-only-timeline.png" \ "$root/candidate/discord-status-reactions-tool-only-timeline.png" \ "$root/baseline/discord-status-reactions-tool-only-desktop.png" \ - "$root/candidate/discord-status-reactions-tool-only-desktop.png" + "$root/candidate/discord-status-reactions-tool-only-desktop.png" \ + "$root/baseline/discord-status-reactions-tool-only-desktop.mp4" \ + "$root/candidate/discord-status-reactions-tool-only-desktop.mp4" do if [[ ! -f "$required" ]]; then echo "Missing required QA evidence file: $required" >&2 @@ -519,14 +524,16 @@ jobs: cp "$root/candidate/discord-status-reactions-tool-only-timeline.png" "$artifacts_worktree/$artifact_root/candidate.png" cp "$root/baseline/discord-status-reactions-tool-only-desktop.png" "$artifacts_worktree/$artifact_root/baseline-desktop.png" cp "$root/candidate/discord-status-reactions-tool-only-desktop.png" "$artifacts_worktree/$artifact_root/candidate-desktop.png" + cp "$root/baseline/discord-status-reactions-tool-only-desktop.mp4" "$artifacts_worktree/$artifact_root/baseline-desktop.mp4" + cp "$root/candidate/discord-status-reactions-tool-only-desktop.mp4" "$artifacts_worktree/$artifact_root/candidate-desktop.mp4" cp "$root/comparison.json" "$artifacts_worktree/$artifact_root/comparison.json" cp "$root/mantis-report.md" "$artifacts_worktree/$artifact_root/mantis-report.md" git -C "$artifacts_worktree" add "$artifact_root" if git -C "$artifacts_worktree" diff --cached --quiet; then - echo "No QA screenshot artifact changes to publish." + echo "No QA screenshot/video artifact changes to publish." else - git -C "$artifacts_worktree" commit --quiet -m "qa: publish Mantis Discord screenshots for PR ${TARGET_PR}" + git -C "$artifacts_worktree" commit --quiet -m "qa: publish Mantis Discord evidence for PR ${TARGET_PR}" git -C "$artifacts_worktree" push --quiet origin HEAD:qa-artifacts fi @@ -558,6 +565,10 @@ jobs: | --- | --- | | Baseline Mantis desktop browser screenshot | Candidate Mantis desktop browser screenshot | + Videos: + - [Baseline desktop MP4](${raw_base}/baseline-desktop.mp4) + - [Candidate desktop MP4](${raw_base}/candidate-desktop.mp4) + Raw QA files: https://github.com/${GITHUB_REPOSITORY}/tree/qa-artifacts/${artifact_root} EOF diff --git a/docs/concepts/mantis.md b/docs/concepts/mantis.md index 64c073e20af..c8ea6d090fa 100644 --- a/docs/concepts/mantis.md +++ b/docs/concepts/mantis.md @@ -168,7 +168,9 @@ worktrees, runs `discord-status-reactions-tool-only` against each worktree, and uploads `baseline/`, `candidate/`, `comparison.json`, and `mantis-report.md` as Actions artifacts. It also renders each lane's timeline HTML in a Crabbox desktop browser and publishes those VNC screenshots beside the deterministic -timeline PNGs in the PR comment. The workflow builds the Crabbox CLI from +timeline PNGs in the PR comment. The same PR comment links to the desktop MP4 +recordings captured during the VNC browser render, while the screenshots stay +inline for quick review. The workflow builds the Crabbox CLI from `openclaw/crabbox` main so it can use the current desktop/browser lease flags before the next Crabbox binary release is cut.