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:
    name: web platform tests json output

    runs-on: ubuntu-latest
    timeout-minutes: 90

    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: build wpt
        run: zig build -Dprebuilt_v8_path=v8/libc_v8.a -Doptimize=ReleaseFast -- version

      - name: run test with json output
        run:  zig-out/bin/lightpanda-wpt --json > wpt.json

      - 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: 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
