(MOT-4279) fix(harness): install published iii for e2e - #636
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
skill-check — worker0 verified, 49 skipped (no docs/).
Four for four. Nicely done. |
📝 WalkthroughWalkthroughThe E2E workflow now installs a published stable iii release and its companion binaries, packages those binaries into the test stack, and passes the installed engine path to execution. The harness validates companion binaries, adds Changesiii E2E engine adoption
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant GitHubActions as GitHub Actions
participant iiiInstaller as iii installer
participant E2EStack as E2E stack
participant RunCI as run-ci.sh
GitHubActions->>iiiInstaller: Install iii, iii-init, and iii-worker
iiiInstaller-->>GitHubActions: Return installed iii path and version
GitHubActions->>E2EStack: Package installed binaries
GitHubActions->>RunCI: Provide III_BIN
RunCI->>RunCI: Validate companion binaries and prepend PATH
RunCI->>E2EStack: Run E2E tests with installed iii
Suggested labels: Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/_harness-e2e.yml:
- Around line 103-111: Update the output assignment in the workflow’s
binary/version output block to derive the binary path from the existing
III_INSTALL_BIN_DIR variable instead of hardcoding target/iii/bin/iii. Preserve
the existing iii executable name and version output behavior so downstream
engine_binary/III_BIN values remain correct when the install directory changes.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: a71e9b51-56d5-44d6-9b43-0ff409a48452
📒 Files selected for processing (4)
.github/workflows/_harness-e2e.ymlharness/tests/e2e/README.mdharness/tests/e2e/run-ci.shharness/tests/e2e/stack-config/engine.yaml
| for binary in iii iii-init iii-worker; do | ||
| test -x "$III_INSTALL_BIN_DIR/$binary" | ||
| done | ||
| version=$("$III_INSTALL_BIN_DIR/iii" --version | awk '{print $NF}') | ||
| test -n "$version" | ||
| { | ||
| echo "repository=$repository" | ||
| echo "revision=$revision" | ||
| echo "package=$package" | ||
| echo "binary=$binary" | ||
| echo "binary=target/iii/bin/iii" | ||
| echo "version=$version" | ||
| } >> "$GITHUB_OUTPUT" |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Hardcoded output path duplicates III_INSTALL_BIN_DIR.
echo "binary=target/iii/bin/iii" re-encodes the same path already defined by III_INSTALL_BIN_DIR (line 94). If that directory ever changes, this literal silently diverges and engine_binary/III_BIN (line 255) will point at the wrong location.
🔧 Derive the output path from the existing variable
env:
GITHUB_TOKEN: ${{ github.token }}
III_INSTALL_URL: https://install.iii.dev/iii/main/install.sh
- III_INSTALL_BIN_DIR: ${{ github.workspace }}/target/iii/bin
+ III_INSTALL_BIN_DIR: ${{ github.workspace }}/target/iii/bin
+ III_INSTALL_BIN_SUBDIR: target/iii/bin
run: |
...
{
- echo "binary=target/iii/bin/iii"
+ echo "binary=$III_INSTALL_BIN_SUBDIR/iii"
echo "version=$version"
} >> "$GITHUB_OUTPUT"🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.github/workflows/_harness-e2e.yml around lines 103 - 111, Update the output
assignment in the workflow’s binary/version output block to derive the binary
path from the existing III_INSTALL_BIN_DIR variable instead of hardcoding
target/iii/bin/iii. Preserve the existing iii executable name and version output
behavior so downstream engine_binary/III_BIN values remain correct when the
install directory changes.
Summary
iiirelease instead of checking out and compiling the engine sourceiii,iii-init, andiii-workerfor each E2E matrix jobPATHand startiii-worker-opsRoot cause
The E2E stack compiled and packaged only the
iiibinary. The external worker lifecycle daemon lives iniii-worker, soworker::addwas never registered and every live scenario timed out during preflight.Impact
The E2E stack now uses the same published release distribution as users and includes the companion binaries required by worker installation and sandbox execution.
Validation
cargo test --locked --manifest-path harness/Cargo.toml -p harness-e2e(55 passed)iii 0.22.0) with the official installeriii-worker-opsregisteredworker::addbash -n harness/tests/e2e/run-ci.shgit diff --checkRefs MOT-4279
Summary by CodeRabbit
New Features
iiireleases and their companion tools.Documentation