forked from microsoft/typespec
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmerge-coverage.js
39 lines (36 loc) · 1011 Bytes
/
merge-coverage.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// @ts-check
import { copyFileSync, existsSync, mkdirSync, readdirSync } from "fs";
import { join } from "path";
import { runOrExit } from "../../packages/internal-build-utils/dist/src/index.js";
import { forEachProject, repoRoot } from "./helpers.js";
// Create folder to collect all coverage files
const rootCoverageTmp = join(repoRoot, "coverage", "tmp");
mkdirSync(rootCoverageTmp, { recursive: true });
// Copy coverage files from each project to common folder
forEachProject((name, location, project) => {
const coverageTmp = join(location, "coverage", ".tmp");
if (existsSync(coverageTmp)) {
const files = readdirSync(coverageTmp);
for (const file of files) {
copyFileSync(join(coverageTmp, file), join(rootCoverageTmp, file));
}
}
});
// Generate merged report
await runOrExit(
"npm",
[
"exec",
"--no",
"--prefix",
"packages/compiler",
"c8",
"--",
"report",
"--reporter=cobertura",
"--reporter=text",
],
{
cwd: repoRoot,
}
);