Skip to content

CI: run the eval tests on Ubuntu and Windows, and check E2 on saved copies - #16

Open
06pratyush wants to merge 4 commits into
mainfrom
ci-eval-tests
Open

06pratyush wants to merge 4 commits into
mainfrom
ci-eval-tests

Conversation

@06pratyush

Copy link
Copy Markdown
Collaborator

CI ran only the app's tests, so none of the eval tests ran on a pull request. That is how #15's 12 Windows failures got through. This PR adds two things to .github/workflows/pages.yml.

Eval tests on Ubuntu and Windows

A new eval job runs pytest eval/tests with Python 3.13 on ubuntu-24.04 and windows-2025. It installs eval/requirements.txt and Chromium's headless shell. Steps run under bash on both systems, so a failing command stops the job. actions/setup-python is pinned to its v7.1.0 commit, like the other actions.

The deploy job still waits only for the app's tests.

Check E2 on the privacy suite's saved copies

As asked in #15:

  • Copies kept. The privacy suite now keeps every copy it saves, in a saved/ folder inside each test's folder under tests/test-results/. Playwright empties that folder before each run, and a repeated name is numbered rather than overwritten.
  • E2 step. After the suite, the test job runs eval/check_files.py on all of them together, so the ICC rule compares the three browsers' copies with each other. On failure, the saved copies and the report are uploaded with the Playwright report.

For Shashwat: eval/check_files.py arrives with #15, so the step has if: hashFiles('eval/check_files.py') != '' and switches itself on once #15 is merged. Until then it is skipped. After #15 merges, I'll drop the condition in a small follow-up, so a renamed script fails loudly instead of being skipped.

Checked locally (Windows)

  • Privacy suite: 17 unit tests and 26 browser tests pass, and 18 copies are kept (6 per browser).
  • E2 step: the step's command, run with Eval: check E2, saved files segment by segment #15's check_files.py under Python 3.12 (as on Ubuntu runners) and 3.13, passes all 18. They share one segment layout (JFIF, DQT ×2, SOF0, DHT ×4, SOS) and carry no ICC profile.
  • Eval tests: pytest eval/tests on main gives 78 passed.

/code-review (high) found four issues; two are fixed, and the other two are the condition explained above and the choice to keep both changes in one PR.

🤖 Generated with Claude Code

06pratyush and others added 2 commits October 28, 2026 16:05
The workflow gains an eval job that runs pytest eval/tests with
Python 3.13 on Ubuntu and on Windows. The two authors work on different
systems, and path handling is where they differ: #15's new tests fail
on Windows only, which CI could not show because it ran the app's tests
alone. Steps run under bash on both systems, so a failing command stops
the job.

The privacy suite now keeps each copy it saves in the test's folder
under tests/test-results/ (Playwright empties it before each run), as
Shashwat asked in #15. After the suite, the test job runs
eval/check_files.py on all of them together, the E2 check of
docs/eval-protocol.md, part E. That script comes with #15, so the step
runs only once the file is on the branch being tested. With #15's
script, the 18 copies the suite saves locally (6 per browser) all pass,
with one segment layout and no ICC profile, under Python 3.12 and 3.13.
When the job fails, the saved copies are uploaded with the report.

The deploy job still waits only for the app's tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
06pratyush and others added 2 commits October 28, 2026 22:13
Resolves the conflict in docs/ai-use.md, where both sides added a row:
keeps both, Shashwat's row for check_files.py (#15, merged first) before
this branch's.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Resolves the conflict in docs/ai-use.md, where main added the rows for
#17, #18 and #19 and this branch has its own: keeps all four, main's
rows first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant