From a4768bee7be6dba16c7002c7303768d0987813bc Mon Sep 17 00:00:00 2001 From: Rafael Camargo Date: Sat, 1 Apr 2023 18:03:53 -0300 Subject: [PATCH] chore: add coverage reports upload to ci config --- .circleci/config.yml | 60 +++++++++++++++++++++++++------ packages/react/format-coverage.js | 3 ++ packages/react/package.json | 1 + packages/vue/format-coverage.js | 3 ++ packages/vue/package.json | 1 + scripts/coverage-report.js | 13 +++++++ 6 files changed, 71 insertions(+), 10 deletions(-) create mode 100644 packages/react/format-coverage.js create mode 100644 packages/vue/format-coverage.js create mode 100644 scripts/coverage-report.js diff --git a/.circleci/config.yml b/.circleci/config.yml index 9c5f626..f875018 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -8,7 +8,6 @@ defaults: &defaults jobs: install: <<: *defaults - steps: - checkout - restore_cache: @@ -30,7 +29,6 @@ jobs: build: <<: *defaults - steps: - attach_workspace: at: ~/glorious-taslonic @@ -44,7 +42,6 @@ jobs: format: <<: *defaults - steps: - attach_workspace: at: ~/glorious-taslonic @@ -52,19 +49,55 @@ jobs: name: Format command: npm run format - test: + test_react: <<: *defaults + steps: + - attach_workspace: + at: ~/glorious-taslonic + - run: + name: Test React + command: | + npm run test -w=packages/react -- --runInBand --coverage --coverageReporters=lcov && \ + npm run format:coverage -w=packages/react + - persist_to_workspace: + root: "." + paths: + - "./packages/react/coverage/lcov.info" + test_vue: + <<: *defaults steps: - attach_workspace: at: ~/glorious-taslonic - run: - name: Test - command: npm run test + name: Test Vue + command: | + npm run test -w=packages/vue -- --runInBand --coverage --coverageReporters=lcov && \ + npm run format:coverage -w=packages/vue + - persist_to_workspace: + root: "." + paths: + - "./packages/vue/coverage/lcov.info" - docs: + test_coverage_upload: <<: *defaults + steps: + - attach_workspace: + at: ~/glorious-taslonic + - run: + name: Install Coveralls CLI + command: curl -L https://coveralls.io/coveralls-linux.tar.gz | tar -xz -C /usr/local/bin + - run: + name: Upload Coverage Reports + command: | + coveralls --repo-token=$COVERALLS_REPO_TOKEN && \ + coveralls --file ./packages/react/coverage/lcov.info --parallel && \ + coveralls --file ./packages/vue/coverage/lcov.info --parallel && \ + coveralls --done + + docs: + <<: *defaults steps: - attach_workspace: at: ~/glorious-taslonic @@ -78,7 +111,6 @@ jobs: deploy: <<: *defaults - steps: - attach_workspace: at: ~/glorious-taslonic @@ -102,15 +134,23 @@ workflows: - format: requires: - install - - test: + - test_react: requires: - install + - test_vue: + requires: + - install + - test_coverage_upload: + requires: + - test_react + - test_vue - deploy: requires: - build - docs - format - - test + - test_react + - test_vue filters: branches: only: diff --git a/packages/react/format-coverage.js b/packages/react/format-coverage.js new file mode 100644 index 0000000..731ab2f --- /dev/null +++ b/packages/react/format-coverage.js @@ -0,0 +1,3 @@ +const coverageReportService = require('../../scripts/coverage-report'); + +coverageReportService.format('react'); diff --git a/packages/react/package.json b/packages/react/package.json index 56faa21..e96e7c0 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -9,6 +9,7 @@ "scripts": { "build": "webpack", "format": "eslint './src/**/*.js'", + "format:coverage": "node ./format-coverage.js", "test": "jest", "prepublishOnly": "bash ../../scripts/build-packages.sh", "log": "conventional-changelog -i CHANGELOG.md -s --commit-path ." diff --git a/packages/vue/format-coverage.js b/packages/vue/format-coverage.js new file mode 100644 index 0000000..3d7d1c9 --- /dev/null +++ b/packages/vue/format-coverage.js @@ -0,0 +1,3 @@ +const coverageReportService = require('../../scripts/coverage-report'); + +coverageReportService.format('vue'); diff --git a/packages/vue/package.json b/packages/vue/package.json index 37751a0..88ef3b6 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -9,6 +9,7 @@ "scripts": { "build": "webpack", "format": "eslint './src/**/*.js'", + "format:coverage": "node ./format-coverage.js", "test": "jest", "prepublishOnly": "bash ../../scripts/build-packages.sh", "log": "conventional-changelog -i CHANGELOG.md -s --commit-path ." diff --git a/scripts/coverage-report.js b/scripts/coverage-report.js new file mode 100644 index 0000000..e182a09 --- /dev/null +++ b/scripts/coverage-report.js @@ -0,0 +1,13 @@ +const fs = require('fs'); +const path = require('path'); + +const _public = {}; + +_public.format = project => { + const basePath = `packages/${project}`; + const lcovFilepath = path.join(__dirname, `../${basePath}/coverage/lcov.info`); + const lcov = fs.readFileSync(lcovFilepath, 'utf-8'); + fs.writeFileSync(lcovFilepath, lcov.replace(/SF:src\//g, `SF:${basePath}/src/`)); +} + +module.exports = _public;