Compare commits
2 commits
renovate/t
...
0.x
| Author | SHA1 | Date | |
|---|---|---|---|
| 3e3d0b5a9d | |||
| 7610b3bef5 |
4 changed files with 52 additions and 17 deletions
6
.github/workflows/ci.yml
vendored
6
.github/workflows/ci.yml
vendored
|
|
@ -12,6 +12,9 @@ jobs:
|
|||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Install yarn
|
||||
run: npm i -g yarn
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
|
|
@ -38,6 +41,9 @@ jobs:
|
|||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Install yarn
|
||||
run: npm i -g yarn
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
|
|
|
|||
42
src/index.ts
42
src/index.ts
|
|
@ -48,6 +48,40 @@ export const validate = async (argv: Argv) => {
|
|||
}
|
||||
};
|
||||
|
||||
async function isGitRepo() {
|
||||
const isGit = await exec(`git rev-parse --is-inside-work-tree`);
|
||||
return isGit.code === 0;
|
||||
}
|
||||
|
||||
async function isSaplingRepo() {
|
||||
const isSapling = await exec(`sl root`);
|
||||
return isSapling.code === 0;
|
||||
}
|
||||
|
||||
async function getDiff(): Promise<string | undefined> {
|
||||
if (await isGitRepo()) {
|
||||
const diffText = await exec(`git diff origin/HEAD...HEAD`);
|
||||
if (diffText.code > 0) {
|
||||
error("Error loading the diff\n\n" + diffText.stderr);
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return diffText.stdout;
|
||||
}
|
||||
|
||||
if (await isSaplingRepo()) {
|
||||
const diffText = await exec(`sl diff -g -r '. % public()'`);
|
||||
if (diffText.code > 0) {
|
||||
error("Error loading the diff\n\n" + diffText.stderr);
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return diffText.stdout;
|
||||
}
|
||||
|
||||
error("Unable to get a diff no repo was found\n");
|
||||
}
|
||||
|
||||
export const run = async (argv = process.argv) => {
|
||||
const parsed: Argv = await yargs(hideBin(argv)).options(options).argv;
|
||||
const validationError = await validate(parsed);
|
||||
|
|
@ -62,12 +96,12 @@ export const run = async (argv = process.argv) => {
|
|||
return lcovDiff(baseCoverage, compareCoverage);
|
||||
}
|
||||
|
||||
const diffText = await exec(`git diff origin/HEAD...HEAD`);
|
||||
if (diffText.code > 0) {
|
||||
return error("Error loading the diff\n\n" + diffText.stderr);
|
||||
const diffText = await getDiff();
|
||||
if (!diffText) {
|
||||
return;
|
||||
}
|
||||
|
||||
const diff = parseDiff.default(diffText.stdout);
|
||||
const diff = parseDiff.default(diffText);
|
||||
|
||||
const { percentage } = report(diff, baseCoverage);
|
||||
process.exit(percentage > 90 ? 0 : 1);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
const getCoverageForFile = (file: any, coverage: any) => {
|
||||
for (const cov of coverage) {
|
||||
const report: { [k: number]: number } = {};
|
||||
if (cov.file === file.to) {
|
||||
if (cov.file.replace("./", "") === file.to) {
|
||||
for (const detail of cov.lines.details) {
|
||||
report[detail.line] = detail.hit;
|
||||
}
|
||||
|
|
|
|||
19
yarn.lock
19
yarn.lock
|
|
@ -881,16 +881,11 @@ acorn-jsx@^5.3.2:
|
|||
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
|
||||
|
||||
acorn-walk@^8.1.1:
|
||||
version "8.3.2"
|
||||
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa"
|
||||
integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==
|
||||
version "8.2.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
|
||||
integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
|
||||
|
||||
acorn@^8.4.1:
|
||||
version "8.11.3"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
|
||||
integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
|
||||
|
||||
acorn@^8.9.0:
|
||||
acorn@^8.4.1, acorn@^8.9.0:
|
||||
version "8.10.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5"
|
||||
integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==
|
||||
|
|
@ -2787,9 +2782,9 @@ ts-jest@^29.1.1:
|
|||
yargs-parser "^21.0.1"
|
||||
|
||||
ts-node@^10.9.1:
|
||||
version "10.9.2"
|
||||
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f"
|
||||
integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==
|
||||
version "10.9.1"
|
||||
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b"
|
||||
integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==
|
||||
dependencies:
|
||||
"@cspotcode/source-map-support" "^0.8.0"
|
||||
"@tsconfig/node10" "^1.0.7"
|
||||
|
|
|
|||
Loading…
Reference in a new issue