Repository navigation
Run model-dependent E2E tests against a small LLM inside GitHub Actions #3764
Copy link
Copy link
Open
Labels
ci/cdIssues with github and the workflow scripts and CI CD environment.Issues with github and the workflow scripts and CI CD environment.
Milestone
Description
Problem
The model-dependent end-to-end tests currently require third-party model credentials. Contributors and PR checks should be able to exercise real model behavior, including tool calls, using a small model hosted on the runner instead.
Approach
- Evaluate a current open-weight small model released by September 26, 2026. Start with Qwen3.5-2B (released March 2, 2026); test Qwen3.5-4B if 2B cannot reliably complete the existing tasks. Run quantized weights through a local OpenAI-compatible server such as Ollama, using an established GitHub Actions CPU-runner installation pattern.
- Prove locally that the model works through the actual LLxprt integration test rig, not merely a direct model API call: verify a shell tool invocation and the real read/replace operation with exact file-content assertion. Measure repeated runs and capture failures, model digest, context usage, runtime, memory and disk use.
- Adapt the relevant E2E workflow/test-runner configuration so a GitHub-hosted runner can download and serve the model without a third-party API key, run the model-dependent tests and fail on genuine missing/incorrect tool calls. Handle host versus Docker networking explicitly. Preserve the existing E2E assertions, budget guard and required-check enforcement. Leave credentialed provider-specific coverage available for behavior the local model cannot represent.
- Validate the runner job in GitHub Actions and document reproduction and resource requirements. Do not present a locally passing Apple Silicon run as proof of CPU-only x64 runner feasibility.
Acceptance criteria
- A reproducible GitHub Actions E2E path exercises real LLxprt model calls without a remote inference service or secret API key; the test fails if expected tool calls or replacement results are wrong.
- Existing shell and replace canaries pass repeatedly with the selected model using the real test rig, and the selected model runs within hosted-runner CPU, memory, disk and job limits. Report measured pass counts and any retries.
- Model release, model artifact/digest, runtime version and Actions install pattern are documented. All changes to required CI coverage and sandbox behavior are explicit and justified, with no weakened tests or checks.
References
- Qwen's release list dates Qwen3.5 0.8B/2B/4B/9B to 2026-03-02: https://github.com/QwenLM/Qwen3.5
- Ollama's quantized Qwen3.5 variants: https://ollama.com/library/qwen3.5
- Established hosted-runner Ollama setup example (older model; deployment pattern only): https://stackoverflow.com/questions/78486506/ollama-running-with-github-actions
- Runner capacities: https://docs.github.com/en/actions/reference/runners/github-hosted-runners
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
ci/cdIssues with github and the workflow scripts and CI CD environment.Issues with github and the workflow scripts and CI CD environment.
Type
Projects
- StatusShow more project fieldsIn Progress
Activity
github-actions commentedon Sep 26, 2026
LLxprt Issue Planner — infrastructure failure
The autonomous planner failed with exit code 1. Please inspect the workflow logs (Run planner agent section) and re-run once resolved.
Keep hosted pilot failure traces accessible (Refs #3764)
Bound local-model pilot context and CPU replace deadline (Refs #3764)
Allow CPU pilot first response before replace deadline (Refs #3764)
Apply pilot watchdog profile and test Gemma 4 QAT (Refs #3764)
Extend pilot-only transport and Docker shell deadlines (Refs #3764)
Allow hosted Docker pilot to finish its first response (Refs #3764)
Exercise full selected E2E suite in manual Gemma pilot (Refs #3764)
Constrain Intel Docker pilot to AVX2 CPU backend (Refs #3764)
Keep pilot SDK alive past first response (Refs #3764)
Verify the live Intel CPU backend instead of optional log flags (Refs #…
Verify Intel backend selection on both pilot legs (Refs #3764)
Run required Linux E2E with pinned runner-local Gemma (Refs #3764)
Keep CPU fixture paths out of workflow shell scripts (Refs #3764)
acoliver commentedon Sep 27, 2026
Required secretless Linux E2E now passes on this PR's current SHA: run 36349870040. It covered Intel Haswell and AMD native host/Docker legs, with 31 selected files, 3 shell cases, exact
bar content, realecho hello-world, and the 4/4 budget in each leg. Earlier pilot runs 36342130687 and 36344243429 also passed. PR #3765 now reflects current status and remains draft while its LLxprt review check is pending. Existing test exclusions remain unchanged.Remove obsolete runner-local E2E pilot path (Refs #3764)
acoliver commentedon Sep 28, 2026
Status: PR #3765 now has the ordinary Linux host and Docker E2E legs passing at
e3a442dbe(run); CI checks are green (run). Both latest E2E runners were AMD. The earlier Intel pilot was at an older SHA, so Intel repeatability at the current SHA is unproven. The PR remains draft while theRun LLxprt reviewbot check runs. This issue remains open.Run Linux model E2E on pinned local Gemma (Refs #3764) (#3765)