ci: run pytest for vero and the six baseline agents - #63
Open
shehabyasser-scale wants to merge 1 commit into
Open
ci: run pytest for vero and the six baseline agents#63shehabyasser-scale wants to merge 1 commit into
shehabyasser-scale wants to merge 1 commit into
Conversation
Comment on lines
+15
to
+17
| concurrency: | ||
| group: tests-${{ github.ref }} | ||
| cancel-in-progress: true |
There was a problem hiding this comment.
cancel-in-progress: true uses github.ref as the group key, so on push to main every new commit cancels the still-running tests for the previous commit. If commit A introduces a regression that is independent of commit B, A's run gets cancelled before it can report the failure — you'd only ever see B's result. Making the flag conditional on the event type keeps the compute-saving behaviour on PRs while letting every main-branch push run to completion.
Suggested change
| concurrency: | |
| group: tests-${{ github.ref }} | |
| cancel-in-progress: true | |
| concurrency: | |
| group: tests-${{ github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} |
Prompt To Fix With AI
This is a comment left during a code review.
Path: .github/workflows/tests.yml
Line: 15-17
Comment:
`cancel-in-progress: true` uses `github.ref` as the group key, so on `push` to `main` every new commit cancels the still-running tests for the previous commit. If commit A introduces a regression that is independent of commit B, A's run gets cancelled before it can report the failure — you'd only ever see B's result. Making the flag conditional on the event type keeps the compute-saving behaviour on PRs while letting every main-branch push run to completion.
```suggestion
concurrency:
group: tests-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
```
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Nothing in this repository ran tests. The only checks on a pull request were Greptile Review and Socket Security, neither of which invokes pytest, and there was no .github directory on any branch. #61 sat open with a red target suite because of it: the change there reaches the OpenAI client through `with_options`, the test fake did not implement it, and `test_agent_submits_response_and_populates_context` had been failing on AttributeError since the PR was opened with nothing to surface it. Two jobs, seven suites, ~450 vero tests plus 20 across the agents: - `vero`: uv sync --locked, then pytest. Two placeholder credentials are set because the task compiler refuses to emit a task whose declared credentials are absent from the environment. Without them five build tests fail on "declared task credentials are missing", which reads like a code failure and is not one. Setting VERO_SKIP_SECRET_CHECK instead would be wrong: it makes test_compiler_checks_secrets_before_writing_and_rejects_source_overlap vacuous, since that test asserts the check fires. - `targets`: one job per baseline agent, fail-fast off so a single broken agent does not mask the other five. Verified locally at Python 3.12 against ed55bc7 before committing: vero 447 passed / 11 skipped, browsecomp-plus 3, gaia 2, officeqa 2, swe-atlas-qna 2, swe-bench-pro 3, tau3 8. `uv lock --check` is clean in all seven projects, so --locked will not spuriously fail. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
shehabyasser-scale
force-pushed
the
ci/add-test-workflow
branch
from
July 29, 2026 02:56
226e828 to
158b656
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on
pr3-harness-bench(#46). One new file:.github/workflows/tests.yml.Why
No test ever ran in CI on this repository. There is no
.githubdirectory on any branch, and the only checks on a pull request are Greptile Review and Socket Security, neither of which invokes pytest.That is not hypothetical. #61 sat open with a red target suite and nothing surfaced it: the change there reaches the OpenAI client through
with_options(...), the test fake was a bareSimpleNamespace, andtest_agent_submits_response_and_populates_contexthad been failing onAttributeError: 'types.SimpleNamespace' object has no attribute 'with_options'since the PR was opened. It only came to light because I ran the suite by hand while rebasing.What it runs
Two jobs, seven suites, roughly 450 vero tests plus 20 across the agents.
verovero/targets(matrix)fail-fast: falseon the matrix, so one broken agent does not mask the state of the other five.Decisions worth reviewing
Two placeholder credentials in the
verojob. The task compiler refuses to emit a task whose declared credentials are absent from the environment (compiler.py:declared task credentials are missing). WithoutOPENAI_API_KEYandOPENAI_BASE_URLpresent, five tests intest_v05_harbor_build.pyfail, which looks like a code failure and is not one. They are placeholders; nothing dials them, and the base URL points at port 1 so anything that ever tried would fail fast rather than hang.Setting
VERO_SKIP_SECRET_CHECKinstead would be the wrong lever: I tried it, and it makestest_compiler_checks_secrets_before_writing_and_rejects_source_overlapfail, because that test asserts the check does fire. Placeholders keep the check live.uv sync --locked, notuv sync.--lockedfails rather than relocking, so apyproject.tomledit that forgets to updateuv.lockbecomes a visible error instead of a silent re-resolve. Verified safe:uv lock --checkis clean in all seven projects today, so this will not fail spuriously on arrival.UV_PYTHON: "3.12". vero requires>=3.11,<3.14, the six targets require>=3.12; 3.12 is the only version satisfying all of them without relying on the runner image's default.uv via the official installer rather than a setup action, so there is no action tag to keep current. No dependency cache: a fresh resolve of
harbor+openaiis cheap, and adding cache keys before there is evidence they are needed is speculative.No
submodules: recursive. The only submodule is the BrowseComp-Plus upstream corpus, which no test reads; the directory is empty locally and all suites pass.Known flake risk
vero/tests/test_v05_docker_sandbox.pyis guarded by@pytest.mark.skipif(not _docker_available()). It skips where there is no daemon, butubuntu-latesthas Docker, so these will actually execute in CI. I sawtest_generic_optimization_without_a_shared_filesystemfail once locally and pass on every other run, so it may be order-dependent. Flagging rather than pre-emptively skipping it: if it proves flaky in CI it should be fixed or marked, not hidden.Not included
Ruff is configured in
vero/pyproject.tomlbut not run here. Adding a lint gate to a codebase that has never had one is a separate change with its own diff, and mixing it in would make this PR's signal ambiguous.Greptile Summary
This PR adds the repository's first CI test workflow, running
pytestacrossvero(447 tests) and six baseline agent targets via a matrix strategy. The design choices are well-documented and deliberate:uv sync --lockedfor reproducible installs, placeholder OpenAI credentials to satisfy the compiler's secret-presence check without enabling real network calls,fail-fast: falseso one broken agent doesn't hide the others, andUV_PYTHON: \"3.12\"to satisfy all seven projects' version constraints.verojob installs theveropackage with locked deps and runs its full test suite with a 25-minute timeout; Docker-backed sandbox tests will execute onubuntu-latest(flagged as a known flake risk in the PR description).targetsjob fans out over six benchmark directories using a matrix, each with its own lockeduvenvironment and a 15-minute timeout.uvvia the officialastral.shinstaller without pinning a specific version, meaning the toolchain version varies between runs.Confidence Score: 5/5
Safe to merge — a purely additive CI workflow with no changes to source code or data.
The change only adds a new workflow file and cannot affect existing behaviour. All configuration choices are well-justified in the PR description.
Files Needing Attention: No files require special attention.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD trigger["on: pull_request / push to main"] --> vero_job trigger --> targets_job subgraph vero_job["Job: vero (timeout 25 min)"] v1["actions/checkout@v4"] --> v2["Install uv (latest)"] v2 --> v3["uv sync --locked\n(working-directory: vero)"] v3 --> v4["uv run pytest -q\n447 passed, 11 skipped"] end subgraph targets_job["Job: targets (matrix, fail-fast: false, timeout 15 min)"] direction TB matrix["Matrix: browsecomp-plus, gaia,\nofficeqa, swe-atlas-qna,\nswe-bench-pro, tau3"] matrix --> t1["actions/checkout@v4"] t1 --> t2["Install uv (latest)"] t2 --> t3["uv sync --locked\n(working-directory: harness-engineering-bench/BENCH/baseline/target)"] t3 --> t4["uv run pytest -q\n~20 tests across 6 agents"] endReviews (2): Last reviewed commit: "ci: run pytest for vero and the six base..." | Re-trigger Greptile