1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-01-03 04:48:52 -05:00

tests: upload WPT reports to wpt.fyi (#10883)

This commit is contained in:
Luca Casonato 2021-06-07 17:41:33 +02:00 committed by GitHub
parent b6400a25a0
commit 7b9c59fd71
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 76 additions and 1 deletions

View file

@ -308,6 +308,7 @@ jobs:
run: | run: |
deno run --unstable --allow-write --allow-read --allow-net --allow-env --allow-run ./tools/wpt.ts setup deno run --unstable --allow-write --allow-read --allow-net --allow-env --allow-run ./tools/wpt.ts setup
deno run --unstable --allow-write --allow-read --allow-net --allow-env --allow-run ./tools/wpt.ts run --quiet --release --json=wpt.json --wptreport=wptreport.json deno run --unstable --allow-write --allow-read --allow-net --allow-env --allow-run ./tools/wpt.ts run --quiet --release --json=wpt.json --wptreport=wptreport.json
gzip ./wptreport.json
- name: Upload wpt results to dl.deno.land - name: Upload wpt results to dl.deno.land
if: | if: |
@ -318,10 +319,24 @@ jobs:
github.ref == 'refs/heads/main' github.ref == 'refs/heads/main'
run: | run: |
gsutil cp ./wpt.json gs://dl.deno.land/wpt/$(git rev-parse HEAD).json gsutil cp ./wpt.json gs://dl.deno.land/wpt/$(git rev-parse HEAD).json
gsutil cp ./wptreport.json gs://dl.deno.land/wpt/$(git rev-parse HEAD)-wptreport.json gsutil cp ./wptreport.json.gz gs://dl.deno.land/wpt/$(git rev-parse HEAD)-wptreport.json.gz
echo $(git rev-parse HEAD) > wpt-latest.txt echo $(git rev-parse HEAD) > wpt-latest.txt
gsutil cp wpt-latest.txt gs://dl.deno.land/wpt-latest.txt gsutil cp wpt-latest.txt gs://dl.deno.land/wpt-latest.txt
- name: Upload wpt results to wpt.fyi
if: |
runner.os == 'Linux' &&
matrix.kind == 'test' &&
matrix.profile == 'release' &&
github.repository == 'denoland/deno' &&
github.ref == 'refs/heads/main'
env:
WPT_FYI_STAGING_USER: ${{ secrets.WPT_FYI_STAGING_USER }}
WPT_FYI_STAGING_PW: ${{ secrets.WPT_FYI_STAGING_PW }}
GITHUB_TOKEN: ${{ secrets.DENOBOT_PAT }}
run: |
deno run -A ./tools/upload_wptfyi.js $(git rev-parse HEAD) --ghstatus
- name: Run web platform tests (debug) - name: Run web platform tests (debug)
if: startsWith(matrix.os, 'ubuntu') && matrix.kind == 'test' && matrix.profile == 'debug' if: startsWith(matrix.os, 'ubuntu') && matrix.kind == 'test' && matrix.profile == 'debug'
run: | run: |

60
tools/upload_wptfyi.js Normal file
View file

@ -0,0 +1,60 @@
// This script pushes new WPT results to wpt.fyi. When the `--ghstatus` flag is
// passed, will automatically add a status check to the commit with a link to
// the wpt.fyi page.
const user = Deno.env.get("WPT_FYI_STAGING_USER");
const password = Deno.env.get("WPT_FYI_STAGING_PW");
const commit = Deno.args[0];
const form = new FormData();
form.set("labels", "experimental");
form.set("result_url", `https://dl.deno.land/wpt/${commit}-wptreport.json.gz`);
const basicAuthToken = btoa(`${user}:${password}`);
const resp = await fetch("https://staging.wpt.fyi/api/results/upload", {
method: "POST",
body: form,
headers: {
authorization: `Basic ${basicAuthToken}`,
},
});
console.log(resp.status);
console.log(resp.headers);
const body = await resp.text();
console.log(body);
if (!resp.ok) {
Deno.exit(1);
}
if (Deno.args.includes("--ghstatus")) {
const githubToken = Deno.env.get("GITHUB_TOKEN");
const taskId = body.split(" ")[1];
const url = `https://staging.wpt.fyi/results/?run_id=${taskId}`;
const resp = await fetch(
`https://api.github.com/repos/denoland/deno/statuses/${commit}`,
{
method: "POST",
body: JSON.stringify({
state: "success",
target_url: url,
context: "wpt.fyi",
description: "View WPT results on wpt.fyi",
}),
headers: {
authorization: `Bearer ${githubToken}`,
},
},
);
console.log(resp.status);
console.log(resp.headers);
const body2 = await resp.text();
console.log(body2);
if (!resp.ok) {
Deno.exit(1);
}
}