Commit Graph

226 Commits

Author SHA1 Message Date
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
Pierre Tachoire
90069f6ab8 ci: use a dedicated action for v8 snapshot 2026-04-10 10:13:27 +02:00
Pierre Tachoire
ca78bd7786 ci: invalidate snapshot cache on src/browser/js/Snapshot.zig 2026-04-10 09:52:43 +02:00
Pierre Tachoire
075a660b2f ci: use cache for snapshots
Add a cache for v8 snapshot file.
Use a cache key for v8 snapshot with the last hash changing
src/browser/js/bridge.zig
eg. v8-snapshot-4dcb2c997e01e4367ca6118629fb4ac712f9692c
2026-04-10 09:26:32 +02:00
Karl Seguin
5c7a665d11 run e2e-test with pre-generated snapshot 2026-04-09 18:54:31 +08:00
Pierre Tachoire
6bb8bc8391 ci: use proxy for integration tests 2026-04-03 09:24:17 +02:00
Pierre Tachoire
ca8361f5c1 Merge pull request #2059 from lightpanda-io/integration-e2e-report
ci: send e2e integration results to slack
2026-04-01 10:41:16 +02:00
Pierre Tachoire
1c1bd81daa ci: send e2e integration results to slack 2026-04-01 10:29:56 +02:00
Pierre Tachoire
ea87fc2c50 ci: publish ci regression list into slack 2026-04-01 10:18:06 +02:00
Pierre Tachoire
7606528b37 ci: fix request interception proxy challenge 2026-03-30 15:32:38 +02:00
Adrià Arrufat
7f2139f612 build: simplify nightly versioning 2026-03-27 10:47:43 +09:00
Pierre Tachoire
28cc60adb0 add a -Dpre_version build flag for custom pre version 2026-03-26 11:52:16 +01:00
Pierre Tachoire
e83b8aa36d ci: don't run wba test on PR
wba test requires secrets read to run.
But we don't want to exposes secrets on external contributions.
So it's easier to run it only after PR merged.
2026-03-25 16:55:45 +01:00
Pierre Tachoire
3a0cead03a Merge pull request #1917 from lightpanda-io/semantic-versioning
build: automate version resolution in build.zig
2026-03-25 08:46:04 +01:00
Pierre Tachoire
eb18dc89f6 ci: use -Dversion_string for release (nightly) build 2026-03-24 14:46:48 +01:00
Karl Seguin
61dabdedec Support (and prefer) dash-separated command line arguments
--log_level -> --log-level

Underscored arguments are still supported for backwards compatibility.
2026-03-24 12:55:08 +08:00
Adrià Arrufat
f1293b7346 Merge branch 'main' into semantic-versioning 2026-03-20 07:04:05 +09:00
Pierre Tachoire
d94fd2a43b Merge pull request #1793 from lightpanda-io/wpt-selfhost
Move WPT runs on a dedicated host
2026-03-19 17:35:21 +01:00
Pierre Tachoire
8c5e737669 ci: use mem-limit with wptrunner 2026-03-19 15:40:18 +01:00
Pierre Tachoire
fb29a1c5bf ci: adjust wpt serve wait time 2026-03-19 15:40:18 +01:00
Pierre Tachoire
59175437b5 wpt: force a wakeup of the wbauth server before the test 2026-03-19 09:40:47 +01:00
Pierre Tachoire
e950384b9b ci: sleep 5s to wait node startup 2026-03-19 09:36:47 +01:00
Pierre Tachoire
78440350dc ci: slow down execution 2026-03-19 09:32:27 +01:00
Pierre Tachoire
f435297949 ci: adjust WPT daily start time 2026-03-19 09:32:26 +01:00
Pierre Tachoire
54d1563cf3 ci: run WPT tests on a dedicated server 2026-03-19 09:32:13 +01:00
Adrià Arrufat
2dbd32d120 build: automate version resolution in build.zig
Removes manual git flags from CI and build scripts.
Versioning is now automatically derived from git and build.zig.zon.

With this PR, we follow https://semver.org/
Logic:

1. Read the version from build.zig.zon
2. If it doesn't have a `.pre` field (i.e. dev/alpha/beta) it will use that
3. Otherwise it will get the info from git: hash and number of commits since last `.0` version
4. Then build the version: `0.3.0-dev.1493+0896edc3`

Note that, since the latest stable version is `0.2.6`.
The convention is to use `0.3.0-dev`, as:
- `0.2.6` < `0.3.0.dev` < `0.3.0`
2026-03-19 13:03:29 +09:00