mirror of
https://github.com/denoland/deno.git
synced 2025-01-03 04:48:52 -05:00
build: collect wpt results as json (#10823)
This commit is contained in:
parent
b4ae243da8
commit
b2a4c2e4f6
3 changed files with 31 additions and 4 deletions
14
.github/workflows/ci.yml
vendored
14
.github/workflows/ci.yml
vendored
|
@ -316,7 +316,19 @@ jobs:
|
||||||
if: startsWith(matrix.os, 'ubuntu') && matrix.kind == 'test' && matrix.profile == 'release'
|
if: startsWith(matrix.os, 'ubuntu') && matrix.kind == 'test' && matrix.profile == 'release'
|
||||||
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
|
deno run --unstable --allow-write --allow-read --allow-net --allow-env --allow-run ./tools/wpt.ts run --quiet --release --json=wpt.json
|
||||||
|
|
||||||
|
- name: Upload wpt results to dl.deno.land
|
||||||
|
if: |
|
||||||
|
runner.os == 'Linux' &&
|
||||||
|
matrix.kind == 'test' &&
|
||||||
|
matrix.profile == 'release' &&
|
||||||
|
github.repository == 'denoland/deno' &&
|
||||||
|
github.ref == 'refs/heads/main'
|
||||||
|
run: |
|
||||||
|
gsutil cp ./wpt.json gs://dl.deno.land/wpt/$(git rev-parse HEAD).json
|
||||||
|
echo $(git rev-parse HEAD) > wpt-latest.txt
|
||||||
|
gsutil cp wpt-latest.txt gs://dl.deno.land/wpt-latest.txt
|
||||||
|
|
||||||
- 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'
|
||||||
|
|
18
tools/wpt.ts
18
tools/wpt.ts
|
@ -165,7 +165,7 @@ async function run() {
|
||||||
const result = await runSingleTest(
|
const result = await runSingleTest(
|
||||||
test.url,
|
test.url,
|
||||||
test.options,
|
test.options,
|
||||||
json ? () => {} : createReportTestCase(test.expectation),
|
createReportTestCase(test.expectation),
|
||||||
);
|
);
|
||||||
results.push({ test, result });
|
results.push({ test, result });
|
||||||
reportVariation(result, test.expectation);
|
reportVariation(result, test.expectation);
|
||||||
|
@ -175,7 +175,21 @@ async function run() {
|
||||||
});
|
});
|
||||||
|
|
||||||
if (json) {
|
if (json) {
|
||||||
await Deno.writeTextFile(json, JSON.stringify(results));
|
const minifiedResults = [];
|
||||||
|
for (const result of results) {
|
||||||
|
const minified = {
|
||||||
|
file: result.test.path,
|
||||||
|
name:
|
||||||
|
Object.fromEntries(result.test.options.script_metadata ?? []).title ??
|
||||||
|
null,
|
||||||
|
cases: result.result.cases.map((case_) => ({
|
||||||
|
name: case_.name,
|
||||||
|
passed: case_.passed,
|
||||||
|
})),
|
||||||
|
};
|
||||||
|
minifiedResults.push(minified);
|
||||||
|
}
|
||||||
|
await Deno.writeTextFile(json, JSON.stringify(minifiedResults));
|
||||||
}
|
}
|
||||||
const code = reportFinal(results);
|
const code = reportFinal(results);
|
||||||
Deno.exit(code);
|
Deno.exit(code);
|
||||||
|
|
|
@ -38,7 +38,8 @@ export type ManifestTestVariation = [
|
||||||
options: ManifestTestOptions,
|
options: ManifestTestOptions,
|
||||||
];
|
];
|
||||||
export interface ManifestTestOptions {
|
export interface ManifestTestOptions {
|
||||||
name?: string;
|
// deno-lint-ignore camelcase
|
||||||
|
script_metadata: [string, string][];
|
||||||
}
|
}
|
||||||
|
|
||||||
const MANIFEST_PATH = join(ROOT_PATH, "./tools/wpt/manifest.json");
|
const MANIFEST_PATH = join(ROOT_PATH, "./tools/wpt/manifest.json");
|
||||||
|
|
Loading…
Reference in a new issue