From 3bddbf5ab6b481c8b5c94102d214d7ccb8428818 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Wed, 23 Apr 2025 18:31:59 +0100 Subject: [PATCH 01/10] test: split tests on ci --- .github/workflows/code_health.yaml | 53 ++++++++++++++++++++++++++++-- package-lock.json | 47 ++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 98 insertions(+), 3 deletions(-) diff --git a/.github/workflows/code_health.yaml b/.github/workflows/code_health.yaml index 8ee0c769..18b578e1 100644 --- a/.github/workflows/code_health.yaml +++ b/.github/workflows/code_health.yaml @@ -44,6 +44,26 @@ jobs: - uses: GitHubSecurityLab/actions-permissions/monitor@v1 if: matrix.os != 'windows-latest' - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: package.json + cache: "npm" + - name: Install dependencies + run: npm ci + - name: Run tests + run: npm test + - name: Upload test results + if: matrix.os == 'ubuntu-latest' + uses: actions/upload-artifact@v3 + with: + name: test-results + path: coverage/lcov.info + + run-atlas-tests: + runs-on: ubuntu-latest + steps: + - uses: GitHubSecurityLab/actions-permissions/monitor@v1 + - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version-file: package.json @@ -55,11 +75,38 @@ jobs: MDB_MCP_API_CLIENT_ID: ${{ secrets.TEST_ATLAS_CLIENT_ID }} MDB_MCP_API_CLIENT_SECRET: ${{ secrets.TEST_ATLAS_CLIENT_SECRET }} MDB_MCP_API_BASE_URL: ${{ vars.TEST_ATLAS_BASE_URL }} - run: npm test + run: npm test -- --testPathIgnorePatterns "mongodb" + - name: Upload test results + uses: actions/upload-artifact@v3 + with: + name: atlas-test-results + path: coverage/lcov.info + coverage: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: package.json + cache: "npm" + - name: Install dependencies + run: npm ci + - name: Download test results + uses: actions/download-artifact@v4 + with: + name: test-results + path: coverage/mongodb + - name: Download atlas test results + uses: actions/download-artifact@v4 + with: + name: atlas-test-results + path: coverage/atlas + - name: Merge coverage reports + run: | + lcov-result-merger coverage/mongodb/lcov.info coverage/atlas/lcov.info coverage/lcov.info - name: Coveralls GitHub Action uses: coverallsapp/github-action@v2.3.6 - if: matrix.os == 'ubuntu-latest' with: file: coverage/lcov.info git-branch: ${{ github.head_ref || github.ref_name }} - git-commit: ${{ github.event.pull_request.head.sha || github.sha }} + git-commit: ${{ github.event.pull_request.head.sha || github.sha }} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 751318be..a9239a20 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,6 +40,7 @@ "jest": "^29.7.0", "jest-environment-node": "^29.7.0", "jest-extended": "^4.0.2", + "lcov-result-merger": "^5.0.1", "mongodb-runner": "^5.8.2", "openapi-types": "^12.1.3", "openapi-typescript": "^7.6.1", @@ -10320,6 +10321,52 @@ "node": ">=6" } }, + "node_modules/lcov-result-merger": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/lcov-result-merger/-/lcov-result-merger-5.0.1.tgz", + "integrity": "sha512-i53RjTYfqbHgerqGtuJjDfARDU340zNxXrJudQZU3o8ak9rrx8FDQUKf38Cjm6MtbqonqiDFmoKuUe++uZbvOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "^3.2.11", + "yargs": "^16.2.0" + }, + "bin": { + "lcov-result-merger": "bin/lcov-result-merger.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/lcov-result-merger/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lcov-result-merger/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", diff --git a/package.json b/package.json index ca9d20d0..6539885c 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,7 @@ "jest": "^29.7.0", "jest-environment-node": "^29.7.0", "jest-extended": "^4.0.2", + "lcov-result-merger": "^5.0.1", "mongodb-runner": "^5.8.2", "openapi-types": "^12.1.3", "openapi-typescript": "^7.6.1", From e9479c383ac32ab1e2dfb91e38b46e8819e2f91e Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Wed, 23 Apr 2025 18:32:36 +0100 Subject: [PATCH 02/10] fix: ci dependency --- .github/workflows/code_health.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/code_health.yaml b/.github/workflows/code_health.yaml index 18b578e1..f62a52ca 100644 --- a/.github/workflows/code_health.yaml +++ b/.github/workflows/code_health.yaml @@ -83,6 +83,8 @@ jobs: path: coverage/lcov.info coverage: runs-on: ubuntu-latest + needs: [run-tests, run-atlas-tests] + if: always() steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 From 2525fef165e812a5af313828a008a3e2fd561853 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Wed, 23 Apr 2025 18:33:19 +0100 Subject: [PATCH 03/10] fix: upload action --- .github/workflows/code_health.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code_health.yaml b/.github/workflows/code_health.yaml index f62a52ca..3cf70ead 100644 --- a/.github/workflows/code_health.yaml +++ b/.github/workflows/code_health.yaml @@ -77,7 +77,7 @@ jobs: MDB_MCP_API_BASE_URL: ${{ vars.TEST_ATLAS_BASE_URL }} run: npm test -- --testPathIgnorePatterns "mongodb" - name: Upload test results - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: atlas-test-results path: coverage/lcov.info From 748a77fcbc23c1e21d56ccf3e0dfd623cd6f88de Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Wed, 23 Apr 2025 18:33:44 +0100 Subject: [PATCH 04/10] fix: upload action --- .github/workflows/code_health.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code_health.yaml b/.github/workflows/code_health.yaml index 3cf70ead..2dd9a855 100644 --- a/.github/workflows/code_health.yaml +++ b/.github/workflows/code_health.yaml @@ -54,7 +54,7 @@ jobs: run: npm test - name: Upload test results if: matrix.os == 'ubuntu-latest' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: test-results path: coverage/lcov.info From cbbe04b900495e358ec083797ab263fd3b3de94e Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Wed, 23 Apr 2025 18:37:56 +0100 Subject: [PATCH 05/10] fix: patterns --- .github/workflows/code_health.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code_health.yaml b/.github/workflows/code_health.yaml index 2dd9a855..f2a22909 100644 --- a/.github/workflows/code_health.yaml +++ b/.github/workflows/code_health.yaml @@ -75,7 +75,7 @@ jobs: MDB_MCP_API_CLIENT_ID: ${{ secrets.TEST_ATLAS_CLIENT_ID }} MDB_MCP_API_CLIENT_SECRET: ${{ secrets.TEST_ATLAS_CLIENT_SECRET }} MDB_MCP_API_BASE_URL: ${{ vars.TEST_ATLAS_BASE_URL }} - run: npm test -- --testPathIgnorePatterns "mongodb" + run: npm test -- --testPathIgnorePatterns "tests/integration/tools/mongodb" --testPathIgnorePatterns "tests/integration/[^/]+\.ts" - name: Upload test results uses: actions/upload-artifact@v4 with: From d81000d46f23f24e8ad3dc39ec371d687bb959b5 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Wed, 23 Apr 2025 18:38:19 +0100 Subject: [PATCH 06/10] fix: styles --- .github/workflows/code_health.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code_health.yaml b/.github/workflows/code_health.yaml index f2a22909..5a94472d 100644 --- a/.github/workflows/code_health.yaml +++ b/.github/workflows/code_health.yaml @@ -111,4 +111,4 @@ jobs: with: file: coverage/lcov.info git-branch: ${{ github.head_ref || github.ref_name }} - git-commit: ${{ github.event.pull_request.head.sha || github.sha }} \ No newline at end of file + git-commit: ${{ github.event.pull_request.head.sha || github.sha }} From 1efe75b6893c82f40df770c928bca653d812aef1 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Wed, 23 Apr 2025 18:39:19 +0100 Subject: [PATCH 07/10] fix: test name --- .github/workflows/code_health.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/code_health.yaml b/.github/workflows/code_health.yaml index 5a94472d..2f1237a7 100644 --- a/.github/workflows/code_health.yaml +++ b/.github/workflows/code_health.yaml @@ -31,8 +31,7 @@ jobs: cache: "npm" - name: Install dependencies run: npm ci - - name: Run style check - run: npm run generate + - run: npm run generate run-tests: strategy: From fc2bcc1180a40362408012192e4f991e3bec35e0 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Wed, 23 Apr 2025 18:46:07 +0100 Subject: [PATCH 08/10] fix: install tool --- .github/workflows/code_health.yaml | 3 ++ package-lock.json | 47 ------------------------------ package.json | 1 - 3 files changed, 3 insertions(+), 48 deletions(-) diff --git a/.github/workflows/code_health.yaml b/.github/workflows/code_health.yaml index 2f1237a7..28d48a51 100644 --- a/.github/workflows/code_health.yaml +++ b/.github/workflows/code_health.yaml @@ -102,6 +102,9 @@ jobs: with: name: atlas-test-results path: coverage/atlas + - name: Install lcov-result-merger + run: | + npm install -g lcov-result-merger - name: Merge coverage reports run: | lcov-result-merger coverage/mongodb/lcov.info coverage/atlas/lcov.info coverage/lcov.info diff --git a/package-lock.json b/package-lock.json index a9239a20..751318be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,7 +40,6 @@ "jest": "^29.7.0", "jest-environment-node": "^29.7.0", "jest-extended": "^4.0.2", - "lcov-result-merger": "^5.0.1", "mongodb-runner": "^5.8.2", "openapi-types": "^12.1.3", "openapi-typescript": "^7.6.1", @@ -10321,52 +10320,6 @@ "node": ">=6" } }, - "node_modules/lcov-result-merger": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/lcov-result-merger/-/lcov-result-merger-5.0.1.tgz", - "integrity": "sha512-i53RjTYfqbHgerqGtuJjDfARDU340zNxXrJudQZU3o8ak9rrx8FDQUKf38Cjm6MtbqonqiDFmoKuUe++uZbvOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-glob": "^3.2.11", - "yargs": "^16.2.0" - }, - "bin": { - "lcov-result-merger": "bin/lcov-result-merger.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/lcov-result-merger/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lcov-result-merger/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", diff --git a/package.json b/package.json index 6539885c..ca9d20d0 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,6 @@ "jest": "^29.7.0", "jest-environment-node": "^29.7.0", "jest-extended": "^4.0.2", - "lcov-result-merger": "^5.0.1", "mongodb-runner": "^5.8.2", "openapi-types": "^12.1.3", "openapi-typescript": "^7.6.1", From 080baae14421d3fbec50897ebc55920ba628d530 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Thu, 24 Apr 2025 00:56:02 +0100 Subject: [PATCH 09/10] fix: merge --- .github/workflows/code_health.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code_health.yaml b/.github/workflows/code_health.yaml index 28d48a51..b6677b23 100644 --- a/.github/workflows/code_health.yaml +++ b/.github/workflows/code_health.yaml @@ -107,7 +107,7 @@ jobs: npm install -g lcov-result-merger - name: Merge coverage reports run: | - lcov-result-merger coverage/mongodb/lcov.info coverage/atlas/lcov.info coverage/lcov.info + lcov-result-merger "coverage/*/lcov.info" "coverage/lcov.info" - name: Coveralls GitHub Action uses: coverallsapp/github-action@v2.3.6 with: From b28a839209046761711f84a359c881d48955e735 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Thu, 24 Apr 2025 09:28:01 +0100 Subject: [PATCH 10/10] fix: address comments --- .github/workflows/code_health.yaml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/code_health.yaml b/.github/workflows/code_health.yaml index b6677b23..9500d5be 100644 --- a/.github/workflows/code_health.yaml +++ b/.github/workflows/code_health.yaml @@ -52,7 +52,7 @@ jobs: - name: Run tests run: npm test - name: Upload test results - if: matrix.os == 'ubuntu-latest' + if: always() && matrix.os == 'ubuntu-latest' uses: actions/upload-artifact@v4 with: name: test-results @@ -77,6 +77,7 @@ jobs: run: npm test -- --testPathIgnorePatterns "tests/integration/tools/mongodb" --testPathIgnorePatterns "tests/integration/[^/]+\.ts" - name: Upload test results uses: actions/upload-artifact@v4 + if: always() with: name: atlas-test-results path: coverage/lcov.info @@ -102,12 +103,9 @@ jobs: with: name: atlas-test-results path: coverage/atlas - - name: Install lcov-result-merger - run: | - npm install -g lcov-result-merger - name: Merge coverage reports run: | - lcov-result-merger "coverage/*/lcov.info" "coverage/lcov.info" + npx -y lcov-result-merger "coverage/*/lcov.info" "coverage/lcov.info" - name: Coveralls GitHub Action uses: coverallsapp/github-action@v2.3.6 with: