From a8b3201bb73a2ddfa2188da52840d921b2425fc7 Mon Sep 17 00:00:00 2001 From: aldousalvarez Date: Mon, 29 Apr 2024 15:27:08 +0800 Subject: [PATCH] testing code coverage logic on ci --- .github/workflows/ci.yaml | 88 +++++++++++++++++++++++++++++++++++++++ tools/ci.sh | 2 + 2 files changed, 90 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c3cb1d89769..7db15683521 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -342,6 +342,8 @@ jobs: FULL_BUILD_DISABLED: true JEST_TEST_PATTERN: packages/cactus-api-client/src/test/typescript/(unit|integration|benchmark)/.*/*.test.ts JEST_TEST_RUNNER_DISABLED: false + JEST_TEST_COVERAGE_PATH: ./code-coverage-ts/cactus-api-client + JEST_TEST_CODE_COVERAGE_DISABLED: true TAPE_TEST_PATTERN: ./packages/cactus-api-client/src/test/typescript/integration/default-consortium-provider.test.ts TAPE_TEST_RUNNER_DISABLED: false needs: build-dev @@ -363,6 +365,16 @@ jobs: ${{ runner.os }}-yarn-${{ hashFiles('./yarn.lock') }} - run: ./tools/ci.sh + + - name: Merge coverage reports + run: npx istanbul-merge --out coverage.json ./code-coverage-ts/cactus-api-client/coverage-final.json + + - name: Upload coverage reports as artifacts + uses: actions/upload-artifact@v2 + with: + name: coverage-reports + path: ./code-coverage-ts/cactus-api-client + cactus-cmd-api-server: continue-on-error: false needs: @@ -374,6 +386,8 @@ jobs: FULL_BUILD_DISABLED: true JEST_TEST_PATTERN: packages/cactus-cmd-api-server/src/test/typescript/(unit|integration|benchmark)/.*/*.test.ts JEST_TEST_RUNNER_DISABLED: false + JEST_TEST_COVERAGE_PATH: ./code-coverage-ts/cactus-cmd-api-server + JEST_TEST_CODE_COVERAGE_DISABLED: true TAPE_TEST_PATTERN: >- --files={./packages/cactus-cmd-api-server/src/test/typescript/integration/plugin-import-from-github.test.ts,./packages/cactus-cmd-api-server/src/test/typescript/integration/plugin-import-without-install.test.ts,./packages/cactus-cmd-api-server/src/test/typescript/integration/remote-plugin-imports.test.ts,./packages/cactus-cmd-api-server/src/test/typescript/unit/config/self-signed-certificate-generator/certificates-work-for-mutual-tls.test.ts,./packages/cactus-cmd-api-server/src/test/typescript/unit/config/self-signed-certificate-generator/generates-working-certificates.test.ts,./packages/cactus-cmd-api-server/src/test/typescript/unit/grpc-js-proto-loader-client-healthcheck.test.ts,./packages/cactus-cmd-api-server/src/test/typescript/unit/grpc-proto-gen-ts-client-healthcheck.test.ts,./packages/cactus-cmd-api-server/src/test/typescript/unit/grpc-proto-gen-ts-client-m-tls-enabled.test.ts,./packages/cactus-cmd-api-server/src/test/typescript/unit/plugins/install-basic-plugin-consortium-manual.test.ts,./packages/cactus-cmd-api-server/src/test/typescript/unit/plugins/install-basic-plugin-keychain-memory.test.ts,./packages/cactus-cmd-api-server/src/test/typescript/unit/plugins/install-basic-plugin-ledger-connector-fabric-0-7-0.test.ts,./packages/cactus-cmd-api-server/src/test/typescript/unit/plugins/install-basic-plugin-ledger-connector-quorum-0-7-0.test.ts} TAPE_TEST_RUNNER_DISABLED: false @@ -432,6 +446,8 @@ jobs: env: FULL_BUILD_DISABLED: true JEST_TEST_PATTERN: packages/cactus-cmd-socketio-server/src/test/typescript/(unit|integration|benchmark)/.*/*.test.ts + JEST_TEST_COVERAGE_PATH: ./code-coverage-ts/cactus-cmd-socketio-server + JEST_TEST_CODE_COVERAGE_DISABLED: true JEST_TEST_RUNNER_DISABLED: false TAPE_TEST_RUNNER_DISABLED: true needs: build-dev @@ -454,6 +470,16 @@ jobs: - run: ./tools/ci.sh + + - name: Merge coverage reports + run: npx istanbul-merge --out coverage.json ./code-coverage-ts/cactus-cmd-socketio-server/coverage-final.json + + - name: Upload coverage reports as artifacts + uses: actions/upload-artifact@v2 + with: + name: coverage-reports + path: ./code-coverage-ts/cactus-cmd-socketio-server + cactus-common: continue-on-error: false env: @@ -461,6 +487,8 @@ jobs: FULL_BUILD_DISABLED: true JEST_TEST_PATTERN: packages/cactus-common/src/test/typescript/(unit|integration|benchmark)/.*/*.test.ts JEST_TEST_RUNNER_DISABLED: false + JEST_TEST_COVERAGE_PATH: ./code-coverage-ts/cactus-common + JEST_TEST_CODE_COVERAGE_DISABLED: true TAPE_TEST_PATTERN: '--files={./packages/cactus-common/src/test/typescript/unit/key-converter.test.ts,./packages/cactus-common/src/test/typescript/unit/logging/logger.test.ts}' TAPE_TEST_RUNNER_DISABLED: false needs: build-dev @@ -482,12 +510,24 @@ jobs: ${{ runner.os }}-yarn-${{ hashFiles('./yarn.lock') }} - run: ./tools/ci.sh + + - name: Merge coverage reports + run: npx istanbul-merge --out coverage.json ./code-coverage-ts/cactus-common/coverage-final.json + + - name: Upload coverage reports as artifacts + uses: actions/upload-artifact@v2 + with: + name: coverage-reports + path: ./code-coverage-ts/cactus-common + cactus-core: continue-on-error: false env: FULL_BUILD_DISABLED: true JEST_TEST_PATTERN: packages/cactus-core/src/test/typescript/(unit|integration|benchmark)/.*/*.test.ts JEST_TEST_RUNNER_DISABLED: false + JEST_TEST_COVERAGE_PATH: ./code-coverage-ts/cactus-core + JEST_TEST_CODE_COVERAGE_DISABLED: true TAPE_TEST_RUNNER_DISABLED: true needs: build-dev runs-on: ubuntu-22.04 @@ -507,12 +547,24 @@ jobs: restore-keys: | ${{ runner.os }}-yarn-${{ hashFiles('./yarn.lock') }} - run: ./tools/ci.sh + + - name: Merge coverage reports + run: npx istanbul-merge --out coverage.json ./code-coverage-ts/cactus-core/coverage-final.json + + - name: Upload coverage reports as artifacts + uses: actions/upload-artifact@v2 + with: + name: coverage-reports + path: ./code-coverage-ts/cactus-core + cactus-core-api: continue-on-error: false env: FULL_BUILD_DISABLED: true JEST_TEST_PATTERN: packages/cactus-core-api/src/test/typescript/(unit|integration|benchmark)/.*/*.test.ts JEST_TEST_RUNNER_DISABLED: false + JEST_TEST_COVERAGE_PATH: ./code-coverage-ts/cactus-core-api + JEST_TEST_CODE_COVERAGE_DISABLED: true TAPE_TEST_RUNNER_DISABLED: true needs: build-dev runs-on: ubuntu-22.04 @@ -532,12 +584,24 @@ jobs: restore-keys: | ${{ runner.os }}-yarn-${{ hashFiles('./yarn.lock') }} - run: ./tools/ci.sh + + - name: Merge coverage reports + run: npx istanbul-merge --out coverage.json ./code-coverage-ts/cactus-core-api/coverage-final.json + + - name: Upload coverage reports as artifacts + uses: actions/upload-artifact@v2 + with: + name: coverage-reports + path: ./code-coverage-ts/cactus-core-api + cactus-example-carbon-accounting-backend: continue-on-error: false env: FULL_BUILD_DISABLED: true JEST_TEST_PATTERN: examples/cactus-example-carbon-accounting-backend/src/test/typescript/(unit|integration|benchmark)/.*/*.test.ts JEST_TEST_RUNNER_DISABLED: false + JEST_TEST_COVERAGE_PATH: ./code-coverage-ts/cactus-example-carbon-accounting-backend + JEST_TEST_CODE_COVERAGE_DISABLED: true TAPE_TEST_PATTERN: ./examples/cactus-example-carbon-accounting-backend/src/test/typescript/integration/admin-enroll-v1-endpoint.test.ts TAPE_TEST_RUNNER_DISABLED: false needs: build-dev @@ -558,12 +622,24 @@ jobs: restore-keys: | ${{ runner.os }}-yarn-${{ hashFiles('./yarn.lock') }} - run: ./tools/ci.sh + + - name: Merge coverage reports + run: npx istanbul-merge --out coverage.json ./code-coverage-ts/cactus-example-carbon-accounting-backend/coverage-final.json + + - name: Upload coverage reports as artifacts + uses: actions/upload-artifact@v2 + with: + name: coverage-reports + path: ./code-coverage-ts/cactus-example-carbon-accounting-backend + cactus-example-carbon-accounting-business-logic-plugin: continue-on-error: false env: FULL_BUILD_DISABLED: true JEST_TEST_PATTERN: examples/cactus-example-carbon-accounting-business-logic-plugin/src/test/typescript/(unit|integration|benchmark)/.*/*.test.ts JEST_TEST_RUNNER_DISABLED: false + JEST_TEST_COVERAGE_PATH: ./code-coverage-ts/ cactus-example-carbon-accounting-business-logic-plugin + JEST_TEST_CODE_COVERAGE_DISABLED: true TAPE_TEST_RUNNER_DISABLED: true needs: build-dev runs-on: ubuntu-22.04 @@ -583,6 +659,16 @@ jobs: restore-keys: | ${{ runner.os }}-yarn-${{ hashFiles('./yarn.lock') }} - run: ./tools/ci.sh + + - name: Merge coverage reports + run: npx istanbul-merge --out coverage.json ./code-coverage-ts/cactus-example-carbon-accounting-business-logic-plugin/coverage-final.json + + - name: Upload coverage reports as artifacts + uses: actions/upload-artifact@v2 + with: + name: coverage-reports + path: ./code-coverage-ts/cactus-example-carbon-accounting-business-logic-plugin + cactus-example-carbon-accounting-frontend: continue-on-error: false env: @@ -2313,6 +2399,8 @@ jobs: ignore-unfixed: true vuln-type: 'os,library' severity: 'CRITICAL,HIGH' + + name: Cactus_CI 'on': pull_request: diff --git a/tools/ci.sh b/tools/ci.sh index 305f8d424c4..5be86914046 100755 --- a/tools/ci.sh +++ b/tools/ci.sh @@ -146,6 +146,8 @@ function mainTask() if [ "${JEST_TEST_RUNNER_DISABLED:-false}" = "true" ]; then echo "$(date +%FT%T%z) [CI] Jest test runner disabled. Skipping..." + elif [ "${JEST_TEST_CODE_COVERAGE_DISABLED:-false} = 'true"]; then + yarn test:jest:all $JEST_TEST_PATTERN --coverage --coverageDirectory=$JEST_TEST_COVERAGE_PATH else yarn test:jest:all $JEST_TEST_PATTERN fi