Skip to content

Run model-dependent E2E tests against a small LLM inside GitHub Actions #3764

Open

Description

@acoliver

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

Activity

  1. added this to the 0.12.0 milestone on Sep 26, 2026
  2. added
    ci/cdIssues with github and the workflow scripts and CI CD environment.
    on Sep 26, 2026
  3. added theissue type on Sep 26, 2026
  4. github-actions commented on Sep 26, 2026

    @github-actions
    Contributor

    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.

  5. acoliver commented on Sep 27, 2026

    @acoliver
    CollaboratorAuthor

    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, real echo 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.

  6. acoliver commented on Sep 28, 2026

    @acoliver
    CollaboratorAuthor

    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 the Run LLxprt review bot check runs. This issue remains open.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ci/cdIssues with github and the workflow scripts and CI CD environment.

    Type

    Projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions