Commit Graph

251 Commits

Author SHA1 Message Date
Adrià Arrufat
f5ddbb49fe ci: publish agent-regression results to slack, run nightly
Mirror the wpt/e2e-integration pattern: tee the suite output to a log,
strip the ANSI colors, and upload it to the #ci-agent channel
(AGENT_SLACK_CHANNEL_ID) via the CI slack bot, with the final
pass/fail summary as the comment. The post also happens when the
suite fails, without masking its exit code (explicit bash pipefail).

Add a nightly cron trigger (03:37, offset from wpt's 02:21) so the
suite actually runs unattended; workflow_dispatch stays for manual
runs with a model override.
2026-07-08 16:22:41 +02:00
Adrià Arrufat
52a8779f2a Merge branch 'main' into agent-regression 2026-07-07 11:43:12 +02:00
Adrià Arrufat
2170b34ea9 ci: agent-regression is manual-only, drop the nightly cron
Claude-Session: https://claude.ai/code/session_01SG5kc3gGurhT7N6f63cjMq
2026-07-03 12:01:05 +02:00
Adrià Arrufat
f7bcdace77 ci: drop temporary push trigger, cross-repo wiring validated green
Claude-Session: https://claude.ai/code/session_01SG5kc3gGurhT7N6f63cjMq
2026-07-03 10:13:43 +02:00
Adrià Arrufat
bd95d9a610 test: consume agent regression suite from lightpanda-io/demo
The suite moved to the demo repo (machinery in agent/, targets the
existing public/ sites — lightpanda-io/demo#206). Delete the in-repo
copy and point the agent-deterministic job, agent-regression.yml, and
make test-agent at the demo checkout, passing the binary via LPD_PATH
(the same variable wptrunner uses) — same consumption model as
runner/integration/wpt.

Includes a temporary push trigger on agent-regression.yml to validate
the cross-repo wiring pre-merge; dropped before merging.
2026-07-03 09:59:29 +02:00
Adrià Arrufat
f9c3e4bc2a ci: drop temporary push trigger, suite validated green in CI 2026-07-02 12:00:19 +02:00
Adrià Arrufat
86ef37e12b ci: temporary push trigger to validate agent-regression pre-merge 2026-07-02 10:24:59 +02:00
Adrià Arrufat
f191410773 test: add agent regression suite
Two layers driven by test/agent/run.sh:

- deterministic: replay a golden PandaScript against frozen local HN
  fixtures and diff the returned JSON exactly against a golden file.
  No API key, no network; gates every PR via e2e-test.yml.

- live (GOOGLE_API_KEY): closed-form Q&A over a local fixture page
  (substring match), and a live Hacker News scrape saved with --save,
  replayed token-free and validated against a jq shape invariant.
  Runs nightly and on demand via agent-regression.yml.

The live output contract lives in cases/hn-live.task (prompt) +
schemas/hn-live.jq (invariant). Model pinned to gemini-3.5-flash in
run.sh; per-task timeouts and a $usage token ceiling guard runaway
loops. make test-agent for local runs.
2026-07-02 09:40:22 +02:00
Halil Durak
5e567adf1b ci: run serve command with TLS host verification disabled 2026-07-02 08:46:21 +03:00
Pierre Tachoire
7aa8bac4ba ci: add read permission to release for docker 2026-06-30 08:31:15 +02:00
Pierre Tachoire
30eb23e0c5 ci: login on GH registry during release 2026-06-29 09:41:58 +02:00
Pierre Tachoire
e396cbb90c ci: login on GH registry during release 2026-06-29 09:38:10 +02:00
Pierre Tachoire
4d07f47da1 Generate a versions.json file 2026-06-25 17:45:19 +02:00
Pierre Tachoire
4e97d1e2e9 ci: fix homebrew release workflow name 2026-06-24 08:13:36 +02:00
Pierre Tachoire
4314148b70 ci: trigger homebrew-browser formula update after release 2026-06-23 11:58:22 +02:00
Pierre Tachoire
ff6fc57d3d call browser-docker workflow after installation 2026-06-22 18:00:48 +02:00
Pierre Tachoire
b2f7bdd935 ci: upload on s3 an agent alias 2026-06-18 10:10:59 +02:00
Pierre Tachoire
7836e1e042 ci: invalidate cloudfront distribution on release 2026-06-17 08:33:57 +02:00
Pierre Tachoire
12cdaea683 ci: upload release on s3 in its own directory 2026-06-17 08:29:06 +02:00
Pierre Tachoire
cd5822c889 ci: remove nightly agent build 2026-06-17 08:29:03 +02:00
Pierre Tachoire
a899fbaec0 ci: fix cache invalidation for agent-build 2026-06-09 11:18:23 +02:00
Pierre Tachoire
8d98d7aa99 ci: add missing cache key for integration test 2026-06-08 12:05:44 +02:00
Pierre Tachoire
41cff18e75 ci: save LP cache for integration tests 2026-06-08 10:56:26 +02:00
Pierre Tachoire
d68f1a48ad ci: always enable cache with e2e test 2026-05-28 11:25:47 +02:00
Pierre Tachoire
a15c04de4b ci: remove cdp logs from end to end tests 2026-05-19 17:32:13 +02:00
Adrià Arrufat
8981a6245c ci: tighten mcp-smoke jq assertions
Replace `grep '"id":N' | jq -e ...` with `jq -ec 'select(.id == N) | ...'`.
The grep form also matched `"id":10`, `"id":11`, ... and any tool description
containing that substring; numeric `select` is type-correct. `jq -e` still
fails the job when `select` produces no output (exit 4), so the smoke
semantics are preserved.

Also add `jq --version` up front so the job fails fast and loud if the
`ubuntu-latest` image ever stops shipping jq.
2026-05-17 10:43:03 +02:00
Pierre Tachoire
803e4303c2 Merge pull request #2481 from navidemad/ci-mcp-smoke
ci: smoke test the MCP stdio server
2026-05-17 10:39:18 +02:00
Karl Seguin
a5c1068b85 Force kill lightpanda between steps to prevent "port already in-use" error in CI 2026-05-16 08:39:53 +08:00
Navid EMAD
f08a1fef12 ci: smoke test the MCP stdio server
Sends initialize + notifications/initialized + tools/list over stdin
and asserts the JSON-RPC responses with jq. Catches regressions in
the agentic surface (./lightpanda mcp) without needing a node client.

Reuses the existing lightpanda-build-release artifact, so the new
job costs about a minute on top of zig-build-release.
2026-05-15 22:53:38 +02:00
Karl Seguin
2bcf9a22d5 Disable cache=true from e2e matrix
cache=true is problematic for a few reasons

1 - The current cache implementation is known to cause timing issues; i.e. it
    executes callbacks synchronously.

2 - Unlike something like robots.txt or proxy, cache tests need to be explicitly
    tested. The response has to include cache headers and the resource loaded
    again.
2026-05-13 17:52:46 +08:00
Pierre Tachoire
6a12ce7d0f ci: invalidate cloudfront cache after build 2026-05-11 18:18:39 +02:00
Pierre Tachoire
f33f35d158 ci: add agent pre-release nightly build
This ci would be deleted once agent branch is merged.
2026-05-11 18:08:54 +02:00
Muki Kiboigo
f54ee13b32 fix zig fmt step in CI 2026-05-07 08:09:33 -07:00
Pierre Tachoire
2fde24c9c1 ci: remove archlinux packaging
Better use
```
yay -S lightpanda-bin
```
2026-05-04 11:29:24 +02:00
Pierre Tachoire
ba28324a9e ci: save cdp logs by using cdpproxy 2026-04-30 12:35:30 +02:00
Pierre Tachoire
bb1070f80a Merge pull request #2238 from lightpanda-io/deb-pkg
Release .deb package
2026-04-29 11:24:23 +02:00
Pierre Tachoire
ece2ec3753 ci: create a matrix for e2e tests 2026-04-28 09:31:54 +02:00
Pierre Tachoire
8767127308 ci: split package release into sub files 2026-04-24 15:37:02 +02:00
Pierre Tachoire
233d08cd6e ci: generate a .deb package on tag 2026-04-24 15:23:25 +02:00
Pierre Tachoire
d2fc963640 Merge pull request #2231 from lightpanda-io/pkg
ci: refacto release workflow and add Arch linux package build
2026-04-24 14:50:55 +02:00
Pierre Tachoire
368bbc75e0 ci: refacto build step into 1 job per os + CPU matrix 2026-04-24 11:43:48 +02:00
Pierre Tachoire
ce541fbc63 ci: add arch linux package generation 2026-04-24 11:43:47 +02:00
Karl Seguin
802ae55cc1 Update WebDriver to use Page
Don't use pre-built snapshot for wpt action (the snapshot needs the WebDriver
added, which is not normally added). Instead, rely on runtime snapshot creation
(this just adds a bit of startup time and peak memory, neither or which should
be an issue for WPT runs).
2026-04-24 17:33:16 +08:00
Pierre Tachoire
9bb6c3ca32 rename nightly.yml into release.yml 2026-04-24 10:59:16 +02:00
Karl Seguin
a9e4ee41e3 Update go run ws/main.go to new go run runner/main.go -serve 2026-04-24 15:56:46 +08:00
Karl Seguin
23e98a4ce0 Add WPT extensions
Some WPT tests need to interact with the browser in a way that isn't possible
with web apis. Browsers need to expose a way for tests to do this and then use
the testdriver-vendor.js to hook into these special WPT actions.

This commit sets up the infrastructure for supporting this and includes
the delete_all_cookies functionality needed by various cookie tests (e.g.
/cookies/attributes/attributes-ctl.sub.html).

A new compilation flag, `-Dwpt_extensions`, can be specified. When specified
a `window.webdriver` accessor is defined and a `WebDriver` type is exposed.

Note that, while I only implemented delete_all_cookies for now, I've seen other
tests fail because of missing vendor-specific implementation.
2026-04-17 15:59:06 +08:00
Pierre Tachoire
e53e4579ab ci: use v8 snapshot cache w/ wpt test 2026-04-10 11:35:40 +02:00
Pierre Tachoire
9cd79941bf Merge pull request #2119 from lightpanda-io/wpt-completion
ci: send wpt completion
2026-04-10 11:26:15 +02:00
Pierre Tachoire
36fcb0fd7f ci: use a longer timeout for e2e test
When we have to generate a snapshot, the build duration is longer.
2026-04-10 11:02:04 +02:00
Pierre Tachoire
963682eb0d ci: send wpt completion 2026-04-10 10:42:16 +02:00