diff --git a/.github/workflows/rust-scoring.yml b/.github/workflows/rust-scoring.yml new file mode 100644 index 00000000..864ced47 --- /dev/null +++ b/.github/workflows/rust-scoring.yml @@ -0,0 +1,20 @@ +name: Rust Scoring + +on: + pull_request: + branches: ["main"] + +jobs: + score: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Install wpt cli + run: cargo install wpt@0.0.11 + - name: Recalc scores + run: wpt calc-scores --in ./runs-2020 --out ./site/scores.json --focus-areas ./focus-areas.json + - uses: actions/upload-artifact@v4 + with: + name: scores.json + path: ./site/scores.json diff --git a/.github/workflows/update-scores-rust.yml b/.github/workflows/update-scores-rust.yml new file mode 100644 index 00000000..fdd27698 --- /dev/null +++ b/.github/workflows/update-scores-rust.yml @@ -0,0 +1,73 @@ +name: RUST Nightly job to update internal WPT dashboard + +on: + pull_request: + # Run an 2.5 hours after servo nightly job + schedule: + - cron: '0 8 * * *' + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +permissions: + contents: write + pages: write + id-token: write + +env: + RUST_BACKTRACE: 1 + SHELL: /bin/bash + +jobs: + wpt-for-layout-2020: + uses: ./.github/workflows/run-wpt.yml + with: + layout-engine: 2020 + artifact-name: wpt-chunks-2020 + + process-new-run: + name: Process all chunks and update metrics + runs-on: ubuntu-24.04 + needs: + - wpt-for-layout-2020 + steps: + - name: Checkout dashboard repo + uses: actions/checkout@v3 + with: + ref: main + - name: Download wpt results for layout 2020 + uses: actions/download-artifact@v4 + with: + path: wpt-chunks-2020 + pattern: wpt-chunks-2020-* + merge-multiple: true + - name: Install wpt cli + run: cargo install wpt@0.0.11 + - name: Process new test results + run: | + CURRENT_DATE=$(date +"%Y-%m-%d") + mkdir -p runs-2020 + wpt merge --in ./wpt-chunks-2020 --out ./merged-wpt-report.json + wpt convert --in ./merged-wpt-report.json --out ./servo-score-report.json --js-sort + xz -z ./servo-score-report.json -e + cp ./servo-score-report.json.xz ./runs-2020/$CURRENT_DATE.json.xz + - uses: actions/upload-artifact@v4 + with: + name: servo-score-report.json.xz + path: ./servo-score-report.json.xz + compression: 0 + + # git config user.name github-actions + # git config user.email github-actions@github.com + # git add runs-2020/${CURRENT_DATE}.xz + # git commit -m "Add runs for $CURRENT_DATE" + # git push + + # - name: Setup Pages + # uses: actions/configure-pages@v3 + # - name: Upload Pages artifact + # uses: actions/upload-pages-artifact@v3 + # with: + # path: 'site' + # - name: Deploy to GitHub Pages + # id: deployment + # uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index 90157b1b..dd70a2cb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /node_modules +/site .DS_Store \ No newline at end of file diff --git a/focus-areas.json b/focus-areas.json new file mode 100644 index 00000000..c39eda30 --- /dev/null +++ b/focus-areas.json @@ -0,0 +1,28 @@ +[ + { "name": "All WPT tests", "areas": [""] }, + { "name": "/content-security-policy/", "areas": ["/content-security-policy"] }, + { "name": "/css/", "areas": ["/css"] }, + { "name": "/css/CSS2/", "areas": ["/css/CSS2"] }, + { "name": "/css/CSS2/abspos/", "areas": ["/css/CSS2/abspos"] }, + { "name": "/css/CSS2/box-display/", "areas": ["/css/CSS2/box-display"] }, + { "name": "/css/CSS2/floats/", "areas": ["/css/CSS2/floats"] }, + { "name": "/css/CSS2/floats-clear/", "areas": ["/css/CSS2/floats-clear"] }, + { "name": "/css/CSS2/linebox/", "areas": ["/css/CSS2/linebox"] }, + { "name": "/css/CSS2/margin-padding-clear/", "areas": ["/css/CSS2/margin-padding-clear"] }, + { "name": "/css/CSS2/normal-flow/", "areas": ["/css/CSS2/normal-flow"] }, + { "name": "/css/CSS2/positioning/", "areas": ["/css/CSS2/positioning"] }, + { "name": "/css/CSS2/tables/ & /css/css-tables/", "areas": [ "/css/CSS2/tables", "/css/css-tables" ] }, + { "name": "/css/cssom/", "areas": ["/css/cssom"] }, + { "name": "/css/css-align/", "areas": ["/css/css-align"] }, + { "name": "/css/css-flexbox/", "areas": ["/css/css-flexbox"] }, + { "name": "/css/css-grid/", "areas": ["/css/css-grid"] }, + { "name": "/css/css-position/", "areas": ["/css/css-position"] }, + { "name": "/css/css-sizing/", "areas": ["/css/css-sizing"] }, + { "name": "/css/css-text/", "areas": ["/css/css-text"] }, + { "name": "/gamepad/", "areas": ["/gamepad"] }, + { "name": "/shadow-dom/", "areas": ["/shadow-dom"] }, + { "name": "/streams/", "areas": ["/streams"] }, + { "name": "/trusted-types/", "areas": ["/trusted-types"] }, + { "name": "/WebCryptoAPI/", "areas": ["/WebCryptoAPI"] }, + { "name": "/webxr/", "areas": ["/webxr"] } +] \ No newline at end of file