%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/.github/workflows/
Upload File :
Create Path :
Current File : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/.github/workflows/daily-wpt-fyi.yml

# This workflow runs every night and tests various releases of Node.js
# (latest nightly, current, and two latest LTS release lines) against the
# `epochs/daily` branch of WPT.

name: Daily WPT report

on:
  workflow_dispatch:
    inputs:
      node-versions:
        description: Node.js versions (as supported by actions/setup-node) to test as JSON array
        required: false
        default: '["current", "lts/*", "lts/-1"]'
  schedule:
    # This is 20 minutes after `epochs/daily` branch is triggered to be created
    # in WPT repo.
    # https://github.com/web-platform-tests/wpt/blob/master/.github/workflows/epochs.yml
    - cron: 30 0 * * *

env:
  PYTHON_VERSION: '3.11'

permissions:
  contents: read

jobs:
  report:
    if: github.repository == 'nodejs/node' || github.event_name == 'workflow_dispatch'
    strategy:
      matrix:
        node-version: ${{ fromJSON(github.event.inputs.node-versions || '["latest-nightly", "current", "lts/*", "lts/-1"]') }}
      fail-fast: false
    runs-on: ubuntu-latest
    steps:
      - name: Set up Python ${{ env.PYTHON_VERSION }}
        uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c  # v5.0.0
        with:
          python-version: ${{ env.PYTHON_VERSION }}
      - name: Environment Information
        run: npx envinfo

      # install a version and checkout
      - name: Get latest nightly
        if: matrix.node-version == 'latest-nightly'
        run: echo "NIGHTLY=$(curl -s https://nodejs.org/download/nightly/index.json | jq -r '[.[] | select(.files[] | contains("linux-x64"))][0].version')" >> $GITHUB_ENV
      - name: Install Node.js
        id: setup-node
        uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8  # v4.0.1
        with:
          node-version: ${{ env.NIGHTLY || matrix.node-version }}
          check-latest: true
      - name: Get nightly ref
        if: contains(matrix.node-version, 'nightly')
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          SHORT_SHA=$(node -p 'process.version.split(/-nightly\d{8}/)[1]')
          echo "NIGHTLY_REF=$(gh api /repos/nodejs/node/commits/$SHORT_SHA --jq '.sha')" >> $GITHUB_ENV
      - name: Checkout ${{ steps.setup-node.outputs.node-version }}
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11  # v4.1.1
        with:
          persist-credentials: false
          ref: ${{ env.NIGHTLY_REF || steps.setup-node.outputs.node-version }}
      - name: Set env.NODE
        run: echo "NODE=$(which node)" >> $GITHUB_ENV
      - name: Set env.WPT_REVISION
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: echo "WPT_REVISION=$(gh api /repos/web-platform-tests/wpt/branches/epochs/daily --jq '.commit.sha')" >> $GITHUB_ENV

      # replace checked out WPT with the synchronized branch
      - name: Remove stale WPT
        run: rm -rf wpt
        working-directory: test/fixtures
      - name: Checkout epochs/daily WPT
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11  # v4.1.1
        with:
          repository: web-platform-tests/wpt
          persist-credentials: false
          path: test/fixtures/wpt
          clean: false
          ref: ${{ env.WPT_REVISION }}

      # Node.js WPT Runner
      - name: Run WPT and generate report
        run: |
          make test-wpt-report || true
          if [ -e out/wpt/wptreport.json ]; then
            echo "WPT_REPORT=$(pwd)/out/wpt/wptreport.json" >> $GITHUB_ENV
          fi

      # undici WPT Runner
      - name: Set env.UNDICI_VERSION
        if: ${{ env.WPT_REPORT != '' }}
        run: echo "UNDICI_VERSION=v$(jq -r '.version' < deps/undici/src/package.json)" >> $GITHUB_ENV
      - name: Remove deps/undici
        if: ${{ env.WPT_REPORT != '' }}
        run: rm -rf deps/undici
      - name: Checkout undici
        if: ${{ env.WPT_REPORT != '' }}
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11  # v4.1.1
        with:
          repository: nodejs/undici
          persist-credentials: false
          path: deps/undici
          clean: false
          ref: ${{ env.UNDICI_VERSION }}
      - name: Add undici WPTs to the report
        if: ${{ env.WPT_REPORT != '' }}
        run: |
          rm -rf test/wpt/tests
          mv ../../test/fixtures/wpt/ test/wpt/tests/
          npm install
          npm run test:wpt || true
        working-directory: deps/undici

      # Upload artifacts
      - name: Clone report for upload
        if: ${{ env.WPT_REPORT != '' }}
        working-directory: out/wpt
        run: cp wptreport.json wptreport-${{ steps.setup-node.outputs.node-version }}.json
      - name: Upload GitHub Actions artifact
        if: ${{ env.WPT_REPORT != '' }}
        uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8  # v4.3.0
        with:
          path: out/wpt/wptreport-*.json
          name: WPT Report for ${{ steps.setup-node.outputs.node-version }}
          if-no-files-found: error
      - name: Upload WPT Report to wpt.fyi API
        if: ${{ env.WPT_REPORT != '' }}
        env:
          WPT_FYI_USERNAME: ${{ vars.WPT_FYI_USERNAME }}
          WPT_FYI_PASSWORD: ${{ secrets.WPT_FYI_PASSWORD }}
        working-directory: out/wpt
        run: |
          gzip wptreport.json
          echo "## Node.js ${{ steps.setup-node.outputs.node-version }}" >> $GITHUB_STEP_SUMMARY
          echo "" >> $GITHUB_STEP_SUMMARY
          echo "WPT Revision: [\`${WPT_REVISION:0:7}\`](https://github.com/web-platform-tests/wpt/commits/$WPT_REVISION)" >> $GITHUB_STEP_SUMMARY
          for WPT_FYI_ENDPOINT in "https://wpt.fyi/api/results/upload" "https://staging.wpt.fyi/api/results/upload"
          do
            response=$(curl -sS \
              -u "$WPT_FYI_USERNAME:$WPT_FYI_PASSWORD" \
              -F "result_file=@wptreport.json.gz" \
              -F "labels=master" \
              $WPT_FYI_ENDPOINT)

            if [[ $response =~ Task\ ([0-9]+)\ added\ to\ queue ]]; then
              run_id=${BASH_REMATCH[1]}
              origin=${WPT_FYI_ENDPOINT%/api/results/upload}

              echo "" >> $GITHUB_STEP_SUMMARY
              echo "Run ID [\`$run_id\`]($origin/api/runs/$run_id) added to the processor queue at ${origin:8}" >> $GITHUB_STEP_SUMMARY
              echo "- [View on the ${origin:8} dashboard]($origin/results?run_id=$run_id)" >> $GITHUB_STEP_SUMMARY
            fi
          done

Zerion Mini Shell 1.0