ci(mantis): install static proof media tools

This commit is contained in:
Ayaan Zaidi
2026-05-11 13:11:12 +05:30
parent 1941142391
commit 1caf3ae674
3 changed files with 18 additions and 9 deletions

View File

@@ -45,10 +45,10 @@ Required workflow:
install and build each worktree with the repo's normal `pnpm` commands. install and build each worktree with the repo's normal `pnpm` commands.
5. In each worktree, run the real-user Telegram Crabbox proof flow from the 5. In each worktree, run the real-user Telegram Crabbox proof flow from the
skill. Use `scripts/e2e/telegram-user-driver.py`, the workflow-provided skill. Use `scripts/e2e/telegram-user-driver.py`, the workflow-provided
`crabbox` binary, and the workflow-checked local `ffmpeg`; do not generate, `crabbox` binary, and the workflow-provided local `ffmpeg`/`ffprobe`; do
install, or patch replacement proof tooling during the run. Use the same not generate, install, or patch replacement proof tooling during the run.
proof idea for baseline and candidate. You may iterate and rerun if the Use the same proof idea for baseline and candidate. You may iterate and rerun
visual result is not convincing. if the visual result is not convincing.
6. Open Telegram Desktop directly to the newest relevant message with the 6. Open Telegram Desktop directly to the newest relevant message with the
runner `view` command before finishing each recording. Keep the chat scrolled runner `view` command before finishing each recording. Keep the chat scrolled
to the bottom so new proof messages appear in-frame. to the bottom so new proof messages appear in-frame.

View File

@@ -331,13 +331,19 @@ jobs:
crabbox --version crabbox --version
crabbox media preview --help >/dev/null crabbox media preview --help >/dev/null
- name: Check local proof tools - name: Install local proof tools
shell: bash shell: bash
run: | run: |
set -euo pipefail set -euo pipefail
test -f scripts/e2e/telegram-user-driver.py test -f scripts/e2e/telegram-user-driver.py
command -v ffmpeg media_tools="${RUNNER_TEMP}/mantis-media-tools"
install -d "$media_tools"
printf '%s\n' '{"private":true}' > "$media_tools/package.json"
pnpm --dir "$media_tools" --config.dangerouslyAllowAllBuilds=true add ffmpeg-static@5.2.0 ffprobe-static@3.1.0
sudo install -m 0755 "$media_tools/node_modules/ffmpeg-static/ffmpeg" /usr/local/bin/ffmpeg
sudo install -m 0755 "$media_tools/node_modules/ffprobe-static/bin/linux/x64/ffprobe" /usr/local/bin/ffprobe
ffmpeg -version >/dev/null ffmpeg -version >/dev/null
ffprobe -version >/dev/null
- name: Ensure agent key exists - name: Ensure agent key exists
env: env:

View File

@@ -40,10 +40,13 @@ describe("Mantis Telegram Desktop proof workflow", () => {
expect(readFileSync(USER_DRIVER, "utf8")).toContain("/usr/local/lib/libtdjson.so"); expect(readFileSync(USER_DRIVER, "utf8")).toContain("/usr/local/lib/libtdjson.so");
}); });
it("checks local proof tools before the Codex agent runs", () => { it("installs local proof tools before the Codex agent runs", () => {
const install = workflowStep("Check local proof tools"); const install = workflowStep("Install local proof tools");
expect(install.run).toContain("test -f scripts/e2e/telegram-user-driver.py"); expect(install.run).toContain("test -f scripts/e2e/telegram-user-driver.py");
expect(install.run).toContain("command -v ffmpeg"); expect(install.run).toContain("ffmpeg-static@5.2.0");
expect(install.run).toContain("ffprobe-static@3.1.0");
expect(install.run).toContain("/usr/local/bin/ffmpeg");
expect(install.run).toContain("/usr/local/bin/ffprobe");
expect(install.run).not.toContain("apt-get install"); expect(install.run).not.toContain("apt-get install");
const agent = workflowStep("Run Codex Mantis Telegram agent"); const agent = workflowStep("Run Codex Mantis Telegram agent");