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 }} AWS_CF_DISTRIBUTION: ${{ vars.AWS_CF_DISTRIBUTION }} 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 - uses: ./.github/actions/install - name: zig build release run: zig build -Dprebuilt_v8_path=v8/libc_v8.a -Doptimize=ReleaseFast -Dcpu=x86_64 - name: upload artifact uses: actions/upload-artifact@v7 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: 15 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@v7 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: 180 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@v8 with: name: lightpanda-build-release - run: chmod a+x ./lightpanda - name: download wptrunner uses: actions/download-artifact@v8 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 10 -pool 3 > wpt.json kill `cat WPT.pid` - name: write commit run: | echo "${{github.sha}}" > commit.txt - name: upload artifact uses: actions/upload-artifact@v7 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@v8 with: name: wpt-results - name: format and send json result run: /perf-fmt wpt ${{ github.sha }} wpt.json