From 2c0d6e29c98fa6f0143906d02db774203af5ec6b Mon Sep 17 00:00:00 2001 From: Fil Maj Date: Wed, 15 May 2024 00:15:56 +0000 Subject: [PATCH] Add CodeCov reporting back after a 3 year hiatus (#1788) --- .github/workflows/ci-build.yml | 33 +++++++++++++++++++++---------- codecov.yml | 28 ++++++++++++++++++++++++++ lerna.json | 15 -------------- packages/cli-hooks/package.json | 3 ++- packages/logger/.c8rc.json | 7 +++++++ packages/logger/.gitignore | 1 - packages/logger/.nycrc.json | 14 ------------- packages/logger/package.json | 8 ++++---- packages/oauth/.c8rc.json | 7 +++++++ packages/oauth/.gitignore | 4 +--- packages/oauth/.nycrc.json | 14 ------------- packages/oauth/package.json | 9 +++++---- packages/socket-mode/.c8rc.json | 7 +++++++ packages/socket-mode/.nycrc.json | 14 ------------- packages/socket-mode/package.json | 6 +++--- packages/web-api/.c8rc.json | 7 +++++++ packages/web-api/.nycrc.json | 14 ------------- packages/web-api/package.json | 8 ++++---- packages/webhook/.c8rc.json | 7 +++++++ packages/webhook/.nycrc.json | 14 ------------- packages/webhook/package.json | 6 +++--- 21 files changed, 108 insertions(+), 118 deletions(-) create mode 100644 codecov.yml delete mode 100644 lerna.json create mode 100644 packages/logger/.c8rc.json delete mode 100644 packages/logger/.nycrc.json create mode 100644 packages/oauth/.c8rc.json delete mode 100644 packages/oauth/.nycrc.json create mode 100644 packages/socket-mode/.c8rc.json delete mode 100644 packages/socket-mode/.nycrc.json create mode 100644 packages/web-api/.c8rc.json delete mode 100644 packages/web-api/.nycrc.json create mode 100644 packages/webhook/.c8rc.json delete mode 100644 packages/webhook/.nycrc.json diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index d0a5e04f3..0e70422c7 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -15,14 +15,14 @@ jobs: matrix: node-version: [18.x, 20.x] package: - - packages/cli-hooks - - packages/logger - - packages/oauth - - packages/rtm-api - - packages/socket-mode - - packages/types - - packages/web-api - - packages/webhook + - cli-hooks + - logger + - oauth + - rtm-api + - socket-mode + - types + - web-api + - webhook steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} @@ -32,7 +32,7 @@ jobs: - name: Get Development Dependencies run: npm i - name: Build and Run Tests in Each Package - working-directory: ${{ matrix.package }} + working-directory: packages/${{ matrix.package }} run: | npm install || npm list # depending on which package we are testing, also npm link up other dependent packages @@ -40,7 +40,20 @@ jobs: */webhook) pushd ../types && npm i && popd && npm link ../types;; */web-api) pushd ../types && npm i && popd && npm link ../types && pushd ../logger && npm i && popd && npm link ../logger;; */oauth) pushd ../logger && npm i && popd && npm link ../logger && pushd ../web-api && npm i && popd && npm link ../web-api;; - # TODO: add socket-mode here once new major version released + */socket-mode) pushd ../logger && npm i && popd && npm link ../logger && pushd ../web-api && npm i && popd && npm link ../web-api;; *) ;; # default esac npm test + - name: Check for coverage report existence + id: check_coverage + uses: andstor/file-existence-action@v3 + with: + files: packages/${{ matrix.package }}/coverage/lcov.info + - name: Upload code coverage + if: matrix.node-version == '20.x' && steps.check_coverage.outputs.files_exists == 'true' + uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} + directory: packages/${{ matrix.package }}/coverage + flags: ${{ matrix.package }} + verbose: true diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 000000000..8fed9b67c --- /dev/null +++ b/codecov.yml @@ -0,0 +1,28 @@ +comment: + layout: "condensed_header, diff, flags" + +flags: + cli-hooks: + paths: + - packages/cli-hooks/** + carryforward: true + logger: + paths: + - packages/logger/** + carryforward: true + oauth: + paths: + - packages/oauth/** + carryforward: true + socket-mode: + paths: + - packages/socket-mode/** + carryforward: true + web-api: + paths: + - packages/web-api/** + carryforward: true + webhook: + paths: + - packages/webhook/** + carryforward: true diff --git a/lerna.json b/lerna.json deleted file mode 100644 index 0dcde6b95..000000000 --- a/lerna.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "packages": [ - "packages/logger", - "packages/oauth", - "packages/rtm-api", - "packages/socket-mode", - "packages/types", - "packages/web-api", - "packages/webhook", - "support/*", - "examples/*" - ], - "version": "independent", - "ignoreChanges": ["**/*.md"] -} diff --git a/packages/cli-hooks/package.json b/packages/cli-hooks/package.json index 3a92f3c84..8fe048488 100644 --- a/packages/cli-hooks/package.json +++ b/packages/cli-hooks/package.json @@ -65,6 +65,7 @@ "eslint-plugin-node": "^11.1.0", "mocha": "^10.2.0", "shx": "^0.3.4", - "sinon": "^17.0.1" + "sinon": "^17.0.1", + "typescript": "5.4.5" } } diff --git a/packages/logger/.c8rc.json b/packages/logger/.c8rc.json new file mode 100644 index 000000000..94b35acfe --- /dev/null +++ b/packages/logger/.c8rc.json @@ -0,0 +1,7 @@ +{ + "include": ["src/*.ts"], + "exclude": ["**/*.spec.js"], + "reporter": ["lcov", "text"], + "all": false, + "cache": true +} diff --git a/packages/logger/.gitignore b/packages/logger/.gitignore index f47692353..b024219cb 100644 --- a/packages/logger/.gitignore +++ b/packages/logger/.gitignore @@ -6,5 +6,4 @@ /dist # coverage -/.nyc_output /coverage diff --git a/packages/logger/.nycrc.json b/packages/logger/.nycrc.json deleted file mode 100644 index c3b22d551..000000000 --- a/packages/logger/.nycrc.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "include": [ - "src/**/*.ts" - ], - "exclude": [ - "src/**.spec.js" - ], - "reporter": ["lcov"], - "extension": [ - ".ts" - ], - "all": false, - "cache": true -} diff --git a/packages/logger/package.json b/packages/logger/package.json index b6de34693..6ee773304 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -28,12 +28,12 @@ "scripts": { "prepare": "npm run build", "build": "npm run build:clean && tsc", - "build:clean": "shx rm -rf ./dist ./coverage ./.nyc_output", + "build:clean": "shx rm -rf ./dist ./coverage", "lint": "eslint --ext .ts src", "mocha": "mocha --config .mocharc.json src/*.spec.js", "test:unit": "npm run build && npm run mocha", - "test": "npm run lint && npm run test:unit", - "coverage": "npm run build && nyc --reporter=text-summary npm run mocha", + "test": "npm run lint && npm run coverage", + "coverage": "npm run build && c8 npm run mocha", "ref-docs:model": "api-extractor run" }, "dependencies": { @@ -45,6 +45,7 @@ "@types/mocha": "^10.0.1", "@typescript-eslint/eslint-plugin": "^6.4.1", "@typescript-eslint/parser": "^6.4.0", + "c8": "^9.1.0", "chai": "^4.3.8", "eslint": "^8.47.0", "eslint-config-airbnb-base": "^15.0.0", @@ -54,7 +55,6 @@ "eslint-plugin-jsdoc": "^46.5.0", "eslint-plugin-node": "^11.1.0", "mocha": "^10.2.0", - "nyc": "^15.1.0", "shx": "^0.3.2", "sinon": "^15.2.0", "source-map-support": "^0.5.21", diff --git a/packages/oauth/.c8rc.json b/packages/oauth/.c8rc.json new file mode 100644 index 000000000..0c6de0f13 --- /dev/null +++ b/packages/oauth/.c8rc.json @@ -0,0 +1,7 @@ +{ + "include": ["src/*.ts"], + "exclude": ["**/*.spec.js", "**/*.spec.ts"], + "reporter": ["lcov", "text"], + "all": false, + "cache": true +} diff --git a/packages/oauth/.gitignore b/packages/oauth/.gitignore index 28891e45a..7118635a5 100644 --- a/packages/oauth/.gitignore +++ b/packages/oauth/.gitignore @@ -6,7 +6,5 @@ package-lock.json /dist # coverage -/.nyc_output /coverage -*.lcov -tmp/ \ No newline at end of file +tmp/ diff --git a/packages/oauth/.nycrc.json b/packages/oauth/.nycrc.json deleted file mode 100644 index 6c61b19dc..000000000 --- a/packages/oauth/.nycrc.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "include": [ - "src/**/*.ts" - ], - "exclude": [ - "**/*.spec.js" - ], - "reporter": ["lcov"], - "extension": [ - ".ts" - ], - "all": false, - "cache": true -} diff --git a/packages/oauth/package.json b/packages/oauth/package.json index d0d62d81b..40e64b7d2 100644 --- a/packages/oauth/package.json +++ b/packages/oauth/package.json @@ -30,10 +30,11 @@ "scripts": { "prepare": "npm run build", "build": "npm run build:clean && tsc", - "build:clean": "shx rm -rf ./dist ./coverage ./.nyc_output", + "build:clean": "shx rm -rf ./dist ./coverage", "lint": "eslint --fix --ext .ts src", - "test": "npm run build && npm run lint && npm run test:mocha", - "test:mocha": "nyc --reporter=text-summary mocha --config .mocharc.json src/*.spec.js src/**/*.spec.js src/*.spec.ts src/**/*.spec.ts", + "test": "npm run lint && npm run coverage", + "coverage": "npm run build && c8 npm run test:mocha", + "test:mocha": "mocha --config .mocharc.json src/*.spec.js src/**/*.spec.js src/*.spec.ts src/**/*.spec.ts", "ref-docs:model": "api-extractor run", "watch": "npx nodemon --watch 'src' --ext 'ts' --exec npm run build" }, @@ -52,6 +53,7 @@ "@types/sinon": "^17", "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", + "c8": "^9.1.0", "chai": "^4", "eslint": "^8", "eslint-config-airbnb-base": "^15", @@ -61,7 +63,6 @@ "eslint-plugin-jsdoc": "^48", "eslint-plugin-node": "^11", "mocha": "^10", - "nyc": "^15", "rewiremock": "^3", "shx": "^0.3.2", "sinon": "^17", diff --git a/packages/socket-mode/.c8rc.json b/packages/socket-mode/.c8rc.json new file mode 100644 index 000000000..a90cce9fc --- /dev/null +++ b/packages/socket-mode/.c8rc.json @@ -0,0 +1,7 @@ +{ + "include": ["src/*.ts"], + "exclude": ["**/*.spec.ts"], + "reporter": ["lcov", "text"], + "all": false, + "cache": true +} diff --git a/packages/socket-mode/.nycrc.json b/packages/socket-mode/.nycrc.json deleted file mode 100644 index 6c61b19dc..000000000 --- a/packages/socket-mode/.nycrc.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "include": [ - "src/**/*.ts" - ], - "exclude": [ - "**/*.spec.js" - ], - "reporter": ["lcov"], - "extension": [ - ".ts" - ], - "all": false, - "cache": true -} diff --git a/packages/socket-mode/package.json b/packages/socket-mode/package.json index 244252374..d1d7e7408 100644 --- a/packages/socket-mode/package.json +++ b/packages/socket-mode/package.json @@ -38,10 +38,10 @@ "scripts": { "prepare": "npm run build", "build": "npm run build:clean && tsc", - "build:clean": "shx rm -rf ./dist ./coverage ./.nyc_output", + "build:clean": "shx rm -rf ./dist ./coverage", "lint": "eslint --ext .ts src", "test:unit": "mocha --config .mocharc.json src/**/*.spec.ts", - "test:coverage": "nyc --reporter=text npm run test:unit", + "test:coverage": "c8 npm run test:unit", "test:integration": "mocha --config .mocharc.json test/integration.spec.js", "test": "npm run lint && npm run build && npm run test:coverage && npm run test:integration", "watch": "npx nodemon --watch 'src' --ext 'ts' --exec npm test" @@ -61,6 +61,7 @@ "@types/sinon": "^17", "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", + "c8": "^9.1.0", "chai": "^4", "eslint": "^8", "eslint-config-airbnb-base": "^15", @@ -71,7 +72,6 @@ "eslint-plugin-node": "^11", "mocha": "^10", "nodemon": "^3.1.0", - "nyc": "^15", "shx": "^0.3.2", "sinon": "^17", "source-map-support": "^0.5.21", diff --git a/packages/web-api/.c8rc.json b/packages/web-api/.c8rc.json new file mode 100644 index 000000000..94b35acfe --- /dev/null +++ b/packages/web-api/.c8rc.json @@ -0,0 +1,7 @@ +{ + "include": ["src/*.ts"], + "exclude": ["**/*.spec.js"], + "reporter": ["lcov", "text"], + "all": false, + "cache": true +} diff --git a/packages/web-api/.nycrc.json b/packages/web-api/.nycrc.json deleted file mode 100644 index 6c61b19dc..000000000 --- a/packages/web-api/.nycrc.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "include": [ - "src/**/*.ts" - ], - "exclude": [ - "**/*.spec.js" - ], - "reporter": ["lcov"], - "extension": [ - ".ts" - ], - "all": false, - "cache": true -} diff --git a/packages/web-api/package.json b/packages/web-api/package.json index 2b81e2116..07ae66f70 100644 --- a/packages/web-api/package.json +++ b/packages/web-api/package.json @@ -35,12 +35,12 @@ "scripts": { "prepare": "npm run build", "build": "npm run build:clean && tsc", - "build:clean": "shx rm -rf ./dist ./coverage ./.nyc_output", + "build:clean": "shx rm -rf ./dist ./coverage", "lint": "eslint --ext .ts src", "mocha": "mocha --config .mocharc.json src/*.spec.js", - "test": "npm run lint && npm run test:unit && npm run test:types && npm run test:integration", + "test": "npm run lint && npm run test:types && npm run test:integration && npm run test:unit", "test:integration": "npm run build && node test/integration/commonjs-project/index.js && node test/integration/esm-project/index.mjs", - "test:unit": "npm run build && nyc --reporter=text-summary npm run mocha", + "test:unit": "npm run build && c8 npm run mocha", "test:types": "tsd", "ref-docs:model": "api-extractor run", "watch": "npx nodemon --watch 'src' --ext 'ts' --exec npm run build" @@ -68,6 +68,7 @@ "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", "busboy": "^1", + "c8": "^9.1.0", "chai": "^4", "eslint": "^8", "eslint-config-airbnb-base": "^15", @@ -78,7 +79,6 @@ "eslint-plugin-node": "^11", "mocha": "^10", "nock": "^13", - "nyc": "^15", "shx": "^0.3.2", "sinon": "^17", "source-map-support": "^0.5.21", diff --git a/packages/webhook/.c8rc.json b/packages/webhook/.c8rc.json new file mode 100644 index 000000000..94b35acfe --- /dev/null +++ b/packages/webhook/.c8rc.json @@ -0,0 +1,7 @@ +{ + "include": ["src/*.ts"], + "exclude": ["**/*.spec.js"], + "reporter": ["lcov", "text"], + "all": false, + "cache": true +} diff --git a/packages/webhook/.nycrc.json b/packages/webhook/.nycrc.json deleted file mode 100644 index 6c61b19dc..000000000 --- a/packages/webhook/.nycrc.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "include": [ - "src/**/*.ts" - ], - "exclude": [ - "**/*.spec.js" - ], - "reporter": ["lcov"], - "extension": [ - ".ts" - ], - "all": false, - "cache": true -} diff --git a/packages/webhook/package.json b/packages/webhook/package.json index dbc15bbe0..171eb4cc5 100644 --- a/packages/webhook/package.json +++ b/packages/webhook/package.json @@ -32,11 +32,11 @@ "scripts": { "prepare": "npm run build", "build": "npm run build:clean && tsc", - "build:clean": "shx rm -rf ./dist ./coverage ./.nyc_output", + "build:clean": "shx rm -rf ./dist ./coverage", "lint": "eslint --ext .ts src", "mocha": "mocha --config .mocharc.json src/*.spec.js", "test": "npm run lint && npm run test:unit", - "test:unit": "npm run build && nyc --reporter=text-summary npm run mocha", + "test:unit": "npm run build && c8 npm run mocha", "ref-docs:model": "api-extractor run" }, "dependencies": { @@ -50,6 +50,7 @@ "@types/mocha": "^10.0.1", "@typescript-eslint/eslint-plugin": "^6.4.1", "@typescript-eslint/parser": "^6.4.0", + "c8": "^9.1.0", "chai": "^4.3.8", "eslint": "^8.47.0", "eslint-config-airbnb-base": "^15.0.0", @@ -60,7 +61,6 @@ "eslint-plugin-node": "^11.1.0", "mocha": "^10.2.0", "nock": "^13.3.3", - "nyc": "^15.1.0", "shx": "^0.3.2", "sinon": "^17.0.0", "source-map-support": "^0.5.21",