Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 56 additions & 6 deletions .github/actions/install/action.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,73 @@
name: "Browsercore install"
description: "Install deps for the project browsercore"

inputs:
zig:
description: 'Zig version to install'
required: false
default: '0.12.1'
arch:
description: 'CPU arch used to select the v8 lib'
required: false
default: 'x86_64'
os:
description: 'OS used to select the v8 lib'
required: false
default: 'linux'
zig-v8:
description: 'zig v8 version to install'
required: false
default: 'v0.1.5'
v8:
description: 'v8 version to install'
required: false
default: '11.1.134'
cache-dir:
description: 'cache dir to use'
required: false
default: '~/.cache'

runs:
using: "composite"

steps:
- name: Install apt deps
if: ${{ inputs.os == 'linux' }}
shell: bash
run: sudo apt-get install -y wget xz-utils python3 ca-certificates git pkg-config libglib2.0-dev gperf libexpat1-dev cmake clang

- uses: mlugg/setup-zig@v1
with:
version: ${{ inputs.zig }}

- name: Cache v8
id: cache-v8
uses: actions/cache@v3
env:
cache-name: cache-v8
with:
path: ${{ inputs.cache-dir }}/v8
key: libc_v8_${{ inputs.v8 }}_${{ inputs.os }}_${{ inputs.arch }}.a

- if: ${{ steps.cache-v8.outputs.cache-hit != 'true' }}
shell: bash
run: |
mkdir -p ${{ inputs.cache-dir }}/v8

wget -O ${{ inputs.cache-dir }}/v8/libc_v8.a https://github.com/lightpanda-io/zig-v8-fork/releases/download/${{ inputs.zig-v8 }}/libc_v8_${{ inputs.v8 }}_${{ inputs.os }}_${{ inputs.arch }}.a

- name: install v8
shell: bash
run: |
mkdir -p vendor/zig-js-runtime/vendor/v8/${{env.ARCH}}/debug
ln -s /usr/local/lib/libc_v8.a vendor/zig-js-runtime/vendor/v8/${{env.ARCH}}/debug/libc_v8.a
mkdir -p vendor/zig-js-runtime/vendor/v8/${{inputs.arch}}-${{inputs.os}}/debug
ln -s ${{ inputs.cache-dir }}/v8/libc_v8.a vendor/zig-js-runtime/vendor/v8/${{inputs.arch}}-${{inputs.os}}/debug/libc_v8.a

mkdir -p vendor/zig-js-runtime/vendor/v8/${{env.ARCH}}/release
ln -s /usr/local/lib/libc_v8.a vendor/zig-js-runtime/vendor/v8/${{env.ARCH}}/release/libc_v8.a
mkdir -p vendor/zig-js-runtime/vendor/v8/${{inputs.arch}}-${{inputs.os}}/release
ln -s ${{ inputs.cache-dir }}/v8/libc_v8.a vendor/zig-js-runtime/vendor/v8/${{inputs.arch}}-${{inputs.os}}/release/libc_v8.a

- name: libiconv
shell: bash
run: |
ln -s /usr/local/lib/libiconv vendor/libiconv
run: make install-libiconv

- name: build mimalloc
shell: bash
Expand Down
64 changes: 41 additions & 23 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
name: nightly build

env:
ARCH: x86_64-linux

on:
schedule:
- cron: "2 2 * * *"
Expand All @@ -12,26 +9,44 @@ on:

permissions:
contents: write
packages: read

jobs:
build:
name: nightly build

strategy:
matrix:
target:
- x86_64-linux
include:
- target: x86_64-linux
os: ubuntu-latest

runs-on: ${{ matrix.os }}
container:
image: ghcr.io/lightpanda-io/zig-browsercore:0.12.1
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
build-linux-x86_64:
env:
ARCH: x86_64
OS: linux

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GH_CI_PAT }}
# fetch submodules recusively, to get zig-js-runtime submodules also.
submodules: recursive

- uses: ./.github/actions/install

- name: zig build
run: zig build --release=safe -Doptimize=ReleaseSafe -Dengine=v8

- name: Rename binary
run: mv zig-out/bin/browsercore-get lightpanda-get-${{ env.ARCH }}-${{ env.OS }}

- name: Upload the build
uses: ncipollo/release-action@v1
with:
allowUpdates: true
artifacts: lightpanda-get-${{ env.ARCH }}-${{ env.OS }}
tag: nightly

build-macos-aarch64:
env:
ARCH: aarch64
OS: macos

runs-on: macos-latest

steps:
- uses: actions/checkout@v4
Expand All @@ -42,16 +57,19 @@ jobs:
submodules: recursive

- uses: ./.github/actions/install
with:
os: ${{env.OS}}
arch: ${{env.ARCH}}

- name: zig build
run: zig build --release=safe -Doptimize=ReleaseSafe -Dengine=v8

- name: Rename binary
run: mv zig-out/bin/browsercore-get lightpanda-get-${{ matrix.target }}
run: mv zig-out/bin/browsercore-get lightpanda-get-${{ env.ARCH }}-${{ env.OS }}

- name: Upload the build
uses: ncipollo/release-action@v1
with:
allowUpdates: true
artifacts: lightpanda-get-${{ matrix.target }}
artifacts: lightpanda-get-${{ env.ARCH }}-${{ env.OS }}
tag: nightly
11 changes: 0 additions & 11 deletions .github/workflows/wpt.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
name: wpt

env:
ARCH: x86_64-linux
AWS_ACCESS_KEY_ID: ${{ vars.LPD_PERF_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.LPD_PERF_AWS_SECRET_ACCESS_KEY }}
AWS_BUCKET: ${{ vars.LPD_PERF_AWS_BUCKET }}
Expand Down Expand Up @@ -46,16 +45,6 @@ jobs:
if: github.event.pull_request.draft == false

runs-on: ubuntu-latest
container:
image: ghcr.io/lightpanda-io/zig-browsercore:0.12.1
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

# docker blocks io_uring syscalls by default now.
# see https://github.com/tigerbeetle/tigerbeetle/pull/1995
# see https://github.com/moby/moby/pull/46762
options: "--security-opt seccomp=unconfined"

steps:
- uses: actions/checkout@v4
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/zig-fmt.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
name: zig-fmt

env:
ZIG_VERSION: 0.12.1

on:
pull_request:

Expand All @@ -26,15 +29,12 @@ jobs:
if: github.event.pull_request.draft == false

runs-on: ubuntu-latest
container:
image: ghcr.io/lightpanda-io/zig:0.12.1
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
outputs:
zig_fmt_errs: ${{ steps.fmt.outputs.zig_fmt_errs }}

steps:
- uses: mlugg/setup-zig@v1
with:
version: ${{ env.ZIG_VERSION }}

- uses: actions/checkout@v4
with:
fetch-depth: 0
Expand Down
21 changes: 0 additions & 21 deletions .github/workflows/zig-test.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
name: zig-test

env:
ARCH: x86_64-linux
AWS_ACCESS_KEY_ID: ${{ vars.LPD_PERF_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.LPD_PERF_AWS_SECRET_ACCESS_KEY }}
AWS_BUCKET: ${{ vars.LPD_PERF_AWS_BUCKET }}
Expand Down Expand Up @@ -44,11 +43,6 @@ jobs:
if: github.event.pull_request.draft == false

runs-on: ubuntu-latest
container:
image: ghcr.io/lightpanda-io/zig-browsercore:0.12.1
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

steps:
- uses: actions/checkout@v4
Expand All @@ -70,11 +64,6 @@ jobs:
if: github.event_name != 'pull_request'

runs-on: ubuntu-latest
container:
image: ghcr.io/lightpanda-io/zig-browsercore:0.12.1
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

steps:
- uses: actions/checkout@v4
Expand All @@ -96,16 +85,6 @@ jobs:
if: github.event.pull_request.draft == false

runs-on: ubuntu-latest
container:
image: ghcr.io/lightpanda-io/zig-browsercore:0.12.1
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

# docker blocks io_uring syscalls by default now.
# see https://github.com/tigerbeetle/tigerbeetle/pull/1995
# see https://github.com/moby/moby/pull/46762
options: "--security-opt seccomp=unconfined"

steps:
- uses: actions/checkout@v4
Expand Down