From d78df8e62e7af039eabec3693afb6a017006f686 Mon Sep 17 00:00:00 2001 From: Kiko Beats Date: Fri, 30 Jul 2021 18:51:11 +0200 Subject: [PATCH 1/4] ci: use lcov-result-merger --- .github/workflows/test.yml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8601a1c..cf355e9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -64,7 +64,7 @@ jobs: - run: npm install --no-package-lock - run: npm test - name: Coverage - run: sudo apt-get install lcov && npm run coverage + run: npm run coverage - name: Upload uses: coverallsapp/github-action@master with: diff --git a/package.json b/package.json index b4b01ee..c6a9f65 100644 --- a/package.json +++ b/package.json @@ -131,7 +131,7 @@ "build": "gulp build", "clean": "lerna clean --yes && rm -rf node_modules", "contributors": "(lerna exec finepack --parallel && git-authors-cli && finepack && git add package.json && git commit -m 'build: contributors' --no-verify) || true", - "coverage": "lerna run coverage && mkdir -p coverage && /usr/bin/find ./packages/* -type f ! -size 0 -name lcov.info -exec echo -a {} \\; | xargs lcov -o coverage/lcov.info", + "coverage": "lerna run coverage && mkdir -p coverage && npx lcov-result-merger 'packages/**/coverage/lcov.info' coverage/lcov.info", "dev": "concurrently \"gulp\" \"npm run dev:server\"", "dev:server": "browser-sync start --server --files \"index.html, README.md, static/**/*.(css|js)\"", "install": "lerna bootstrap --no-ci --force-local", From 46b9b67d1a7056423afb3d16f15e3a2be589f9b5 Mon Sep 17 00:00:00 2001 From: Kiko Beats Date: Fri, 30 Jul 2021 19:54:17 +0200 Subject: [PATCH 2/4] ci: add merge-reports script --- package.json | 5 ++++- packages/core/package.json | 1 - packages/memoize/package.json | 1 - packages/mongo/package.json | 1 - packages/mysql/package.json | 1 - packages/postgres/package.json | 1 - packages/redis/package.json | 1 - packages/sql/package.json | 1 - packages/sqlite/package.json | 1 - scripts/merge-reports | 37 ++++++++++++++++++++++++++++++++++ 10 files changed, 41 insertions(+), 9 deletions(-) create mode 100755 scripts/merge-reports diff --git a/package.json b/package.json index c6a9f65..8486d0d 100644 --- a/package.json +++ b/package.json @@ -109,6 +109,7 @@ "browser-sync": "latest", "concurrently": "latest", "finepack": "latest", + "glob": "latest", "gulp": "latest", "gulp-autoprefixer": "latest", "gulp-concat": "latest", @@ -117,6 +118,8 @@ "gulp-uglify": "latest", "lerna": "latest", "lint-staged": "latest", + "make-dir": "latest", + "nyc": "latest", "prettier-standard": "latest", "simple-git-hooks": "latest", "standard": "latest" @@ -131,7 +134,7 @@ "build": "gulp build", "clean": "lerna clean --yes && rm -rf node_modules", "contributors": "(lerna exec finepack --parallel && git-authors-cli && finepack && git add package.json && git commit -m 'build: contributors' --no-verify) || true", - "coverage": "lerna run coverage && mkdir -p coverage && npx lcov-result-merger 'packages/**/coverage/lcov.info' coverage/lcov.info", + "coverage": "node ./scripts/merge-reports && mkdir -p coverage && nyc report --reporter=text-lcov > coverage/lcov.info", "dev": "concurrently \"gulp\" \"npm run dev:server\"", "dev:server": "browser-sync start --server --files \"index.html, README.md, static/**/*.(css|js)\"", "install": "lerna bootstrap --no-ci --force-local", diff --git a/packages/core/package.json b/packages/core/package.json index 7db6a22..c7779c0 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -40,7 +40,6 @@ "src" ], "scripts": { - "coverage": "mkdir -p coverage && nyc report --reporter=text-lcov > coverage/lcov.info", "test": "nyc ava" }, "license": "MIT" diff --git a/packages/memoize/package.json b/packages/memoize/package.json index 82fa831..971e3e3 100644 --- a/packages/memoize/package.json +++ b/packages/memoize/package.json @@ -45,7 +45,6 @@ "src" ], "scripts": { - "coverage": "mkdir -p coverage && nyc report --reporter=text-lcov > coverage/lcov.info", "test": "nyc ava" }, "license": "MIT" diff --git a/packages/mongo/package.json b/packages/mongo/package.json index 2373b56..bf5e460 100644 --- a/packages/mongo/package.json +++ b/packages/mongo/package.json @@ -46,7 +46,6 @@ "src" ], "scripts": { - "coverage": "mkdir -p coverage && nyc report --reporter=text-lcov > coverage/lcov.info", "test": "nyc ava" }, "license": "MIT" diff --git a/packages/mysql/package.json b/packages/mysql/package.json index b25ee1e..39d3b16 100644 --- a/packages/mysql/package.json +++ b/packages/mysql/package.json @@ -47,7 +47,6 @@ "src" ], "scripts": { - "coverage": "mkdir -p coverage && nyc report --reporter=text-lcov > coverage/lcov.info", "test": "nyc ava" }, "license": "MIT" diff --git a/packages/postgres/package.json b/packages/postgres/package.json index 7e1941f..efa24f5 100644 --- a/packages/postgres/package.json +++ b/packages/postgres/package.json @@ -47,7 +47,6 @@ "src" ], "scripts": { - "coverage": "mkdir -p coverage && nyc report --reporter=text-lcov > coverage/lcov.info", "test": "nyc ava --serial" }, "license": "MIT" diff --git a/packages/redis/package.json b/packages/redis/package.json index ff81881..57d2bd3 100644 --- a/packages/redis/package.json +++ b/packages/redis/package.json @@ -45,7 +45,6 @@ "src" ], "scripts": { - "coverage": "mkdir -p coverage && nyc report --reporter=text-lcov > coverage/lcov.info", "posttest:docker": "docker-compose down --rmi local", "test": "nyc ava", "test:docker": "docker-compose up --build --abort-on-container-exit --exit-code-from test" diff --git a/packages/sql/package.json b/packages/sql/package.json index e8178db..952e693 100644 --- a/packages/sql/package.json +++ b/packages/sql/package.json @@ -45,7 +45,6 @@ "src" ], "scripts": { - "coverage": "mkdir -p coverage && nyc report --reporter=text-lcov > coverage/lcov.info", "test": "nyc ava" }, "license": "MIT" diff --git a/packages/sqlite/package.json b/packages/sqlite/package.json index 8d4b9fa..c446a89 100644 --- a/packages/sqlite/package.json +++ b/packages/sqlite/package.json @@ -47,7 +47,6 @@ "src" ], "scripts": { - "coverage": "mkdir -p coverage && nyc report --reporter=text-lcov > coverage/lcov.info", "test": "nyc ava" }, "license": "MIT" diff --git a/scripts/merge-reports b/scripts/merge-reports new file mode 100755 index 0000000..f1b7c57 --- /dev/null +++ b/scripts/merge-reports @@ -0,0 +1,37 @@ +#!/usr/bin/env node + +'use strict' + +const path = require('path') +const { spawnSync } = require('child_process') + +const rimraf = require('rimraf') +const makeDir = require('make-dir') +const glob = require('glob') + +process.chdir(__dirname) +rimraf.sync('.nyc_output') +makeDir.sync('.nyc_output') + +// Merge coverage data from each package so we can generate a complete report +glob.sync('packages/*/.nyc_output').forEach(nycOutput => { + const cwd = path.dirname(nycOutput) + const { status, stderr } = spawnSync( + 'nyc', + [ + 'merge', + '.nyc_output', + path.join(__dirname, '.nyc_output', path.basename(cwd) + '.json') + ], + { + encoding: 'utf8', + shell: true, + cwd + } + ) + + if (status !== 0) { + console.error(stderr) + process.exit(status) + } +}) From 38e65abeddcf41e1635eb159a1ce50f164c05f8b Mon Sep 17 00:00:00 2001 From: Kiko Beats Date: Fri, 30 Jul 2021 20:16:35 +0200 Subject: [PATCH 3/4] ci: fix root path --- scripts/merge-reports | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/merge-reports b/scripts/merge-reports index f1b7c57..278e65d 100755 --- a/scripts/merge-reports +++ b/scripts/merge-reports @@ -9,7 +9,9 @@ const rimraf = require('rimraf') const makeDir = require('make-dir') const glob = require('glob') -process.chdir(__dirname) +const rooPath = path.resolve(__dirname, '..') + +process.chdir(rooPath) rimraf.sync('.nyc_output') makeDir.sync('.nyc_output') @@ -21,7 +23,7 @@ glob.sync('packages/*/.nyc_output').forEach(nycOutput => { [ 'merge', '.nyc_output', - path.join(__dirname, '.nyc_output', path.basename(cwd) + '.json') + path.join(rooPath, '.nyc_output', path.basename(cwd) + '.json') ], { encoding: 'utf8', From b0a27b3cf16b77001893234bfb442ea1632ce96a Mon Sep 17 00:00:00 2001 From: Kiko Beats Date: Fri, 30 Jul 2021 20:27:57 +0200 Subject: [PATCH 4/4] ci: tweaks --- package.json | 2 +- scripts/merge-reports | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 8486d0d..2d84b89 100644 --- a/package.json +++ b/package.json @@ -134,7 +134,7 @@ "build": "gulp build", "clean": "lerna clean --yes && rm -rf node_modules", "contributors": "(lerna exec finepack --parallel && git-authors-cli && finepack && git add package.json && git commit -m 'build: contributors' --no-verify) || true", - "coverage": "node ./scripts/merge-reports && mkdir -p coverage && nyc report --reporter=text-lcov > coverage/lcov.info", + "coverage": "node scripts/merge-reports && mkdir -p coverage && nyc report --reporter=text-lcov > coverage/lcov.info", "dev": "concurrently \"gulp\" \"npm run dev:server\"", "dev:server": "browser-sync start --server --files \"index.html, README.md, static/**/*.(css|js)\"", "install": "lerna bootstrap --no-ci --force-local", diff --git a/scripts/merge-reports b/scripts/merge-reports index 278e65d..9324679 100755 --- a/scripts/merge-reports +++ b/scripts/merge-reports @@ -2,12 +2,11 @@ 'use strict' -const path = require('path') const { spawnSync } = require('child_process') - -const rimraf = require('rimraf') const makeDir = require('make-dir') +const rimraf = require('rimraf') const glob = require('glob') +const path = require('path') const rooPath = path.resolve(__dirname, '..')