work on fixing github workflows

This commit is contained in:
Karl Seguin
2025-04-06 19:06:19 +08:00
parent b8d7744563
commit cda6f89dba
10 changed files with 28 additions and 32 deletions

View File

@@ -59,11 +59,11 @@ runs:
- name: install v8 - name: install v8
shell: bash shell: bash
run: | run: |
mkdir -p vendor/zig-js-runtime/vendor/v8/${{inputs.arch}}-${{inputs.os}}/debug mkdir -p v8/build/${{inputs.arch}}-${{inputs.os}}/debug/ninja/obj/zig/
ln -s ${{ inputs.cache-dir }}/v8/libc_v8.a vendor/zig-js-runtime/vendor/v8/${{inputs.arch}}-${{inputs.os}}/debug/libc_v8.a ln -s ${{ inputs.cache-dir }}/v8/libc_v8.a v8/build/${{inputs.arch}}-${{inputs.os}}/debug/ninja/obj/zig/libc_v8.a
mkdir -p vendor/zig-js-runtime/vendor/v8/${{inputs.arch}}-${{inputs.os}}/release mkdir -p v8/build/${{inputs.arch}}-${{inputs.os}}/release/ninja/obj/zig/
ln -s ${{ inputs.cache-dir }}/v8/libc_v8.a vendor/zig-js-runtime/vendor/v8/${{inputs.arch}}-${{inputs.os}}/release/libc_v8.a ln -s ${{ inputs.cache-dir }}/v8/libc_v8.a v8/build/${{inputs.arch}}-${{inputs.os}}/release/ninja/obj/zig/libc_v8.a
- name: libiconv - name: libiconv
shell: bash shell: bash

View File

@@ -31,7 +31,7 @@ jobs:
arch: ${{env.ARCH}} arch: ${{env.ARCH}}
- name: zig build - name: zig build
run: zig build --release=safe -Doptimize=ReleaseSafe -Dengine=v8 -Dcpu=x86_64 -Dgit_commit=$(git rev-parse --short ${{ github.sha }}) run: zig build --release=safe -Doptimize=ReleaseSafe -Dcpu=x86_64 -Dgit_commit=$(git rev-parse --short ${{ github.sha }})
- name: Rename binary - name: Rename binary
run: mv zig-out/bin/lightpanda lightpanda-${{ env.ARCH }}-${{ env.OS }} run: mv zig-out/bin/lightpanda lightpanda-${{ env.ARCH }}-${{ env.OS }}
@@ -63,7 +63,7 @@ jobs:
arch: ${{env.ARCH}} arch: ${{env.ARCH}}
- name: zig build - name: zig build
run: zig build --release=safe -Doptimize=ReleaseSafe -Dengine=v8 -Dgit_commit=$(git rev-parse --short ${{ github.sha }}) run: zig build --release=safe -Doptimize=ReleaseSafe -Dgit_commit=$(git rev-parse --short ${{ github.sha }})
- name: Rename binary - name: Rename binary
run: mv zig-out/bin/lightpanda lightpanda-${{ env.ARCH }}-${{ env.OS }} run: mv zig-out/bin/lightpanda lightpanda-${{ env.ARCH }}-${{ env.OS }}
@@ -95,7 +95,7 @@ jobs:
arch: ${{env.ARCH}} arch: ${{env.ARCH}}
- name: zig build - name: zig build
run: zig build --release=safe -Doptimize=ReleaseSafe -Dengine=v8 -Dgit_commit=$(git rev-parse --short ${{ github.sha }}) run: zig build --release=safe -Doptimize=ReleaseSafe -Dgit_commit=$(git rev-parse --short ${{ github.sha }})
- name: Rename binary - name: Rename binary
run: mv zig-out/bin/lightpanda lightpanda-${{ env.ARCH }}-${{ env.OS }} run: mv zig-out/bin/lightpanda lightpanda-${{ env.ARCH }}-${{ env.OS }}
@@ -127,7 +127,7 @@ jobs:
arch: ${{env.ARCH}} arch: ${{env.ARCH}}
- name: zig build - name: zig build
run: zig build --release=safe -Doptimize=ReleaseSafe -Dengine=v8 -Dgit_commit=$(git rev-parse --short ${{ github.sha }}) run: zig build --release=safe -Doptimize=ReleaseSafe -Dgit_commit=$(git rev-parse --short ${{ github.sha }})
- name: Rename binary - name: Rename binary
run: mv zig-out/bin/lightpanda lightpanda-${{ env.ARCH }}-${{ env.OS }} run: mv zig-out/bin/lightpanda lightpanda-${{ env.ARCH }}-${{ env.OS }}

View File

@@ -47,7 +47,7 @@ jobs:
- uses: ./.github/actions/install - uses: ./.github/actions/install
- name: zig build release - name: zig build release
run: zig build -Doptimize=ReleaseSafe -Dengine=v8 run: zig build -Doptimize=ReleaseSafe
- name: upload artifact - name: upload artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
@@ -86,7 +86,7 @@ jobs:
- name: run puppeteer - name: run puppeteer
run: | run: |
python3 -m http.server 1234 -d ./public & echo $! > PYTHON.pid python3 -m http.server 1234 -d ./public & echo $! > PYTHON.pid
./lightpanda serve & echo $! > LPD.pid ./lightpanda serve --gc_hints & echo $! > LPD.pid
RUNS=100 npm run bench-puppeteer-cdp > puppeteer.out || exit 1 RUNS=100 npm run bench-puppeteer-cdp > puppeteer.out || exit 1
cat /proc/`cat LPD.pid`/status |grep VmHWM|grep -oP '\d+' > LPD.VmHWM cat /proc/`cat LPD.pid`/status |grep VmHWM|grep -oP '\d+' > LPD.VmHWM
kill `cat LPD.pid` `cat PYTHON.pid` kill `cat LPD.pid` `cat PYTHON.pid`

View File

@@ -55,7 +55,7 @@ jobs:
- uses: ./.github/actions/install - uses: ./.github/actions/install
- run: zig build wpt -Dengine=v8 -- --safe --summary - run: zig build wpt -- --safe --summary
# For now WPT tests doesn't pass at all. # For now WPT tests doesn't pass at all.
# We accept then to continue the job on failure. # We accept then to continue the job on failure.
@@ -80,7 +80,7 @@ jobs:
- uses: ./.github/actions/install - uses: ./.github/actions/install
- name: json output - name: json output
run: zig build wpt -Dengine=v8 -- --safe --json > wpt.json run: zig build wpt -- --safe --json > wpt.json
- name: write commit - name: write commit
run: | run: |

View File

@@ -56,7 +56,7 @@ jobs:
- uses: ./.github/actions/install - uses: ./.github/actions/install
- name: zig build debug - name: zig build debug
run: zig build -Dengine=v8 run: zig build
- name: upload artifact - name: upload artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
@@ -102,11 +102,8 @@ jobs:
- uses: ./.github/actions/install - uses: ./.github/actions/install
- name: zig build unittest
run: zig build unittest -freference-trace --summary all
- name: zig build test - name: zig build test
run: zig build test -Dengine=v8 -- --json > bench.json run: zig build test -- --json > bench.json
- name: write commit - name: write commit
run: | run: |

View File

@@ -3,7 +3,7 @@
ZIG := zig ZIG := zig
BC := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) BC := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
# option test filter make unittest F="server" # option test filter make test F="server"
F= F=
# OS and ARCH # OS and ARCH
@@ -47,7 +47,7 @@ help:
# $(ZIG) commands # $(ZIG) commands
# ------------ # ------------
.PHONY: build build-dev run run-release shell test bench download-zig wpt unittest data .PHONY: build build-dev run run-release shell test bench download-zig wpt data
zig_version = $(shell grep 'recommended_zig_version = "' "vendor/zig-js-runtime/build.zig" | cut -d'"' -f2) zig_version = $(shell grep 'recommended_zig_version = "' "vendor/zig-js-runtime/build.zig" | cut -d'"' -f2)
@@ -62,13 +62,13 @@ download-zig:
## Build in release-safe mode ## Build in release-safe mode
build: build:
@printf "\e[36mBuilding (release safe)...\e[0m\n" @printf "\e[36mBuilding (release safe)...\e[0m\n"
$(ZIG) build -Doptimize=ReleaseSafe -Dengine=v8 -Dgit_commit=$$(git rev-parse --short HEAD) || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;) $(ZIG) build -Doptimize=ReleaseSafe -Dgit_commit=$$(git rev-parse --short HEAD) || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;)
@printf "\e[33mBuild OK\e[0m\n" @printf "\e[33mBuild OK\e[0m\n"
## Build in debug mode ## Build in debug mode
build-dev: build-dev:
@printf "\e[36mBuilding (debug)...\e[0m\n" @printf "\e[36mBuilding (debug)...\e[0m\n"
@$(ZIG) build -Dengine=v8 -Dgit_commit=$$(git rev-parse --short HEAD) || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;) @$(ZIG) build -Dgit_commit=$$(git rev-parse --short HEAD) || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;)
@printf "\e[33mBuild OK\e[0m\n" @printf "\e[33mBuild OK\e[0m\n"
## Run the server in debug mode ## Run the server in debug mode
@@ -79,16 +79,16 @@ run: build
## Run a JS shell in debug mode ## Run a JS shell in debug mode
shell: shell:
@printf "\e[36mBuilding shell...\e[0m\n" @printf "\e[36mBuilding shell...\e[0m\n"
@$(ZIG) build shell -Dengine=v8 || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;) @$(ZIG) build shell || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;)
## Run WPT tests ## Run WPT tests
wpt: wpt:
@printf "\e[36mBuilding wpt...\e[0m\n" @printf "\e[36mBuilding wpt...\e[0m\n"
@$(ZIG) build wpt -Dengine=v8 -- --safe $(filter-out $@,$(MAKECMDGOALS)) || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;) @$(ZIG) build wpt -- --safe $(filter-out $@,$(MAKECMDGOALS)) || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;)
wpt-summary: wpt-summary:
@printf "\e[36mBuilding wpt...\e[0m\n" @printf "\e[36mBuilding wpt...\e[0m\n"
@$(ZIG) build wpt -Dengine=v8 -- --safe --summary $(filter-out $@,$(MAKECMDGOALS)) || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;) @$(ZIG) build wpt -- --safe --summary $(filter-out $@,$(MAKECMDGOALS)) || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;)
## Test ## Test
test: test:

View File

@@ -76,7 +76,7 @@ pub fn build(b: *std.Build) !void {
{ {
// get v8 // get v8
// ------- // -------
const v8 = b.dependency("v8", .{.target = target, .optimize = optimize}); const v8 = b.dependency("v8", .{ .target = target, .optimize = optimize });
const get_v8 = b.addRunArtifact(v8.artifact("get-v8")); const get_v8 = b.addRunArtifact(v8.artifact("get-v8"));
const get_step = b.step("get-v8", "Get v8"); const get_step = b.step("get-v8", "Get v8");
get_step.dependOn(&get_v8.step); get_step.dependOn(&get_v8.step);
@@ -85,7 +85,7 @@ pub fn build(b: *std.Build) !void {
{ {
// build v8 // build v8
// ------- // -------
const v8 = b.dependency("v8", .{.target = target, .optimize = optimize}); const v8 = b.dependency("v8", .{ .target = target, .optimize = optimize });
const build_v8 = b.addRunArtifact(v8.artifact("build-v8")); const build_v8 = b.addRunArtifact(v8.artifact("build-v8"));
const build_step = b.step("build-v8", "Build v8"); const build_step = b.step("build-v8", "Build v8");
build_step.dependOn(&build_v8.step); build_step.dependOn(&build_v8.step);

View File

@@ -33,7 +33,6 @@ const storage = @import("../storage/storage.zig");
// https://html.spec.whatwg.org/multipage/nav-history-apis.html#window // https://html.spec.whatwg.org/multipage/nav-history-apis.html#window
pub const Window = struct { pub const Window = struct {
pub const prototype = *EventTarget; pub const prototype = *EventTarget;
pub const global_type = true;
// Extend libdom event target for pure zig struct. // Extend libdom event target for pure zig struct.
base: parser.EventTargetTBase = parser.EventTargetTBase{}, base: parser.EventTargetTBase = parser.EventTargetTBase{},
@@ -58,6 +57,7 @@ pub const Window = struct {
}; };
} }
pub fn replaceLocation(self: *Window, loc: Location) !void { pub fn replaceLocation(self: *Window, loc: Location) !void {
self.location = loc; self.location = loc;
if (self.document) |doc| { if (self.document) |doc| {

View File

@@ -227,6 +227,7 @@ pub fn Env(comptime S: type, comptime types: anytype) type {
// Hey, look! This is our first real usage of the TYPE_LOOKUP. // Hey, look! This is our first real usage of the TYPE_LOOKUP.
// Just like we said above, given a type, we can get its // Just like we said above, given a type, we can get its
// template index. // template index.
const proto_index = @field(TYPE_LOOKUP, proto_name); const proto_index = @field(TYPE_LOOKUP, proto_name);
templates[i].inherit(templates[proto_index]); templates[i].inherit(templates[proto_index]);
} }
@@ -366,7 +367,6 @@ pub fn Env(comptime S: type, comptime types: anytype) type {
// FunctionTemplate of the isolate (in startExecutor) // FunctionTemplate of the isolate (in startExecutor)
fn attachClass(self: *Self, comptime Struct: type, template: v8.FunctionTemplate) void { fn attachClass(self: *Self, comptime Struct: type, template: v8.FunctionTemplate) void {
const template_proto = template.getPrototypeTemplate(); const template_proto = template.getPrototypeTemplate();
inline for (@typeInfo(Struct).@"struct".decls) |declaration| { inline for (@typeInfo(Struct).@"struct".decls) |declaration| {
const name = declaration.name; const name = declaration.name;
if (comptime name[0] == '_') { if (comptime name[0] == '_') {

View File

@@ -17,14 +17,15 @@
// along with this program. If not, see <https://www.gnu.org/licenses/>. // along with this program. If not, see <https://www.gnu.org/licenses/>.
const std = @import("std"); const std = @import("std");
const parser = @import("browser/netsurf.zig"); const Allocator = std.mem.Allocator;
pub const allocator = std.testing.allocator; pub const allocator = std.testing.allocator;
pub const expectError = std.testing.expectError; pub const expectError = std.testing.expectError;
pub const expectString = std.testing.expectEqualStrings; pub const expectString = std.testing.expectEqualStrings;
pub const expectEqualSlices = std.testing.expectEqualSlices; pub const expectEqualSlices = std.testing.expectEqualSlices;
const App = @import("app.zig").App; const App = @import("app.zig").App;
const Allocator = std.mem.Allocator; const parser = @import("browser/netsurf.zig");
// Merged std.testing.expectEqual and std.testing.expectString // Merged std.testing.expectEqual and std.testing.expectString
// can be useful when testing fields of an anytype an you don't know // can be useful when testing fields of an anytype an you don't know
@@ -388,10 +389,8 @@ pub const JsRunner = struct {
errdefer runner.env.deinit(); errdefer runner.env.deinit();
runner.url = try URL.parse("https://lightpanda.io/opensource-browser/", null); runner.url = try URL.parse("https://lightpanda.io/opensource-browser/", null);
errdefer runner.env.deinit();
runner.renderer = Renderer.init(arena); runner.renderer = Renderer.init(arena);
runner.cookie_jar = storage.CookieJar.init(arena); runner.cookie_jar = storage.CookieJar.init(arena);
runner.loop = try Loop.init(arena); runner.loop = try Loop.init(arena);
errdefer runner.loop.deinit(); errdefer runner.loop.deinit();