mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-03-22 12:44:43 +00:00
147 lines
3.5 KiB
YAML
147 lines
3.5 KiB
YAML
name: wpt
|
|
|
|
env:
|
|
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 }}
|
|
AWS_REGION: ${{ vars.LPD_PERF_AWS_REGION }}
|
|
LIGHTPANDA_DISABLE_TELEMETRY: true
|
|
|
|
on:
|
|
schedule:
|
|
- cron: "23 2 * * *"
|
|
|
|
# Allows you to run this workflow manually from the Actions tab
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
wpt-build-release:
|
|
name: zig build release
|
|
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
fetch-depth: 0
|
|
# fetch submodules recusively, to get zig-js-runtime submodules also.
|
|
submodules: recursive
|
|
|
|
- uses: ./.github/actions/install
|
|
|
|
- name: zig build release
|
|
run: zig build -Dprebuilt_v8_path=v8/libc_v8.a -Doptimize=ReleaseFast -Dcpu=x86_64 -Dgit_commit=$(git rev-parse --short ${{ github.sha }})
|
|
|
|
- name: upload artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: lightpanda-build-release
|
|
path: |
|
|
zig-out/bin/lightpanda
|
|
retention-days: 1
|
|
|
|
wpt-build-runner:
|
|
name: build wpt runner
|
|
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 90
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
repository: 'lightpanda-io/demo'
|
|
fetch-depth: 0
|
|
|
|
- run: |
|
|
cd ./wptrunner
|
|
CGO_ENABLED=0 go build
|
|
|
|
- name: upload artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: wptrunner
|
|
path: |
|
|
wptrunner/wptrunner
|
|
retention-days: 1
|
|
|
|
run-wpt:
|
|
name: web platform tests json output
|
|
needs:
|
|
- wpt-build-release
|
|
- wpt-build-runner
|
|
|
|
# use a self host runner.
|
|
runs-on: lpd-bench-hetzner
|
|
timeout-minutes: 90
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
ref: fork
|
|
repository: 'lightpanda-io/wpt'
|
|
fetch-depth: 0
|
|
|
|
# The hosts are configured manually on the self host runner.
|
|
# - name: create custom hosts
|
|
# run: ./wpt make-hosts-file | sudo tee -a /etc/hosts
|
|
|
|
- name: generate manifest
|
|
run: ./wpt manifest
|
|
|
|
- name: download lightpanda release
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: lightpanda-build-release
|
|
|
|
- run: chmod a+x ./lightpanda
|
|
|
|
- name: download wptrunner
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: wptrunner
|
|
|
|
- run: chmod a+x ./wptrunner
|
|
|
|
- name: run test with json output
|
|
run: |
|
|
./wpt serve 2> /dev/null & echo $! > WPT.pid
|
|
sleep 10s
|
|
./wptrunner -lpd-path ./lightpanda -json -concurrency 1 > wpt.json
|
|
kill `cat WPT.pid`
|
|
|
|
- name: write commit
|
|
run: |
|
|
echo "${{github.sha}}" > commit.txt
|
|
|
|
- name: upload artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: wpt-results
|
|
path: |
|
|
wpt.json
|
|
commit.txt
|
|
retention-days: 10
|
|
|
|
perf-fmt:
|
|
name: perf-fmt
|
|
needs: run-wpt
|
|
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
|
|
container:
|
|
image: ghcr.io/lightpanda-io/perf-fmt:latest
|
|
credentials:
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
steps:
|
|
- name: download artifact
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: wpt-results
|
|
|
|
- name: format and send json result
|
|
run: /perf-fmt wpt ${{ github.sha }} wpt.json
|