Skip to content

Commit 226e828

Browse files
ci: run pytest for vero and the six baseline agents
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>
1 parent ed55bc7 commit 226e828

1 file changed

Lines changed: 89 additions & 0 deletions

File tree

.github/workflows/tests.yml

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
name: tests
2+
3+
# Nothing in this repository ran tests before this workflow: the only checks on a
4+
# pull request were Greptile Review and Socket Security, neither of which invokes
5+
# pytest. PR #61 sat open with a red target suite as a result.
6+
7+
on:
8+
pull_request:
9+
push:
10+
branches: [main]
11+
12+
permissions:
13+
contents: read
14+
15+
concurrency:
16+
group: tests-${{ github.ref }}
17+
cancel-in-progress: true
18+
19+
env:
20+
# Every package here resolves from public PyPI (vero/pyproject.toml pins that
21+
# index explicitly), so no private-registry credentials are needed. Pinned so a
22+
# runner image bump cannot silently change the interpreter: vero requires
23+
# >=3.11,<3.14 and the six targets require >=3.12.
24+
UV_PYTHON: "3.12"
25+
26+
jobs:
27+
vero:
28+
name: vero
29+
runs-on: ubuntu-latest
30+
timeout-minutes: 25
31+
env:
32+
# The task compiler refuses to emit a task whose declared credentials are
33+
# absent ("declared task credentials are missing", compiler.py), so the
34+
# build tests need these present. Placeholders only: nothing dials them,
35+
# and port 1 fails fast instead of hanging if anything ever tries.
36+
OPENAI_API_KEY: ci-not-a-real-key
37+
OPENAI_BASE_URL: http://127.0.0.1:1/v1
38+
steps:
39+
- uses: actions/checkout@v4
40+
41+
- name: Install uv
42+
run: |
43+
curl -LsSf https://astral.sh/uv/install.sh | sh
44+
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
45+
46+
- name: Install dependencies
47+
working-directory: vero
48+
# --locked fails rather than relocking, so a pyproject edit that forgets
49+
# to update uv.lock is a visible error instead of a silent resolve.
50+
run: uv sync --locked
51+
52+
- name: Run tests
53+
working-directory: vero
54+
run: uv run pytest -q
55+
56+
targets:
57+
# The six editable baseline agents. Each is its own uv project with its own
58+
# lock, so they get one job apiece rather than a shared environment.
59+
name: ${{ matrix.benchmark }}
60+
runs-on: ubuntu-latest
61+
timeout-minutes: 15
62+
strategy:
63+
# One broken agent should not mask the state of the other five.
64+
fail-fast: false
65+
matrix:
66+
benchmark:
67+
- browsecomp-plus
68+
- gaia
69+
- officeqa
70+
- swe-atlas-qna
71+
- swe-bench-pro
72+
- tau3
73+
steps:
74+
# No `submodules: recursive`: the only submodule is the BrowseComp-Plus
75+
# upstream corpus, which no test reads.
76+
- uses: actions/checkout@v4
77+
78+
- name: Install uv
79+
run: |
80+
curl -LsSf https://astral.sh/uv/install.sh | sh
81+
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
82+
83+
- name: Install dependencies
84+
working-directory: harness-engineering-bench/${{ matrix.benchmark }}/baseline/target
85+
run: uv sync --locked
86+
87+
- name: Run tests
88+
working-directory: harness-engineering-bench/${{ matrix.benchmark }}/baseline/target
89+
run: uv run pytest -q

0 commit comments

Comments
 (0)