diff --git a/.github/actions/run-tests/action.yml b/.github/actions/run-tests/action.yml deleted file mode 100644 index 5c44f7afa..000000000 --- a/.github/actions/run-tests/action.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: 'Run Build, Lint, Format Check, Tests, and Coverage Collection' -description: 'Run the required actions' -runs: - using: 'composite' - steps: - - name: Start Docker Compose - run: docker-compose up -d - shell: bash - - name: Install pnpm - run: npm i -g pnpm - shell: bash - - name: Install deps - run: pnpm i --frozen-lockfile=false - shell: bash - - name: Build Project - run: pnpm build - shell: bash - - name: Run Linter - run: pnpm lint - shell: bash - - name: Run Unit Tests - run: pnpm test - shell: bash - - name: Run Integration Tests - run: pnpm test:int - shell: bash - env: - NX_CLOUD_DISTRIBUTED_EXECUTION: false - - name: Stop Nx Cloud Agents - run: pnpx -y nx-cloud stop-all-agents - shell: bash - - name: Collect Coverage - run: pnpm coverage -- --skip-nx-cache - shell: bash - env: - NX_CLOUD_DISTRIBUTED_EXECUTION: false - - name: Stop Docker Compose - run: docker-compose down - shell: bash - - name: Debug Coverage - run: cat coverage/lcov.info - shell: bash - - name: Upload Coverage - uses: actions/upload-artifact@master - with: - name: coverage - path: coverage/lcov.info \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c84f43446..ed58a3fe6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,47 +11,43 @@ on: - cron: '0 0 * * *' env: - NX_BRANCH: ${{ github.event.pull_request.head.ref }} - NX_RUN_GROUP: ${{ github.run_id }} - NX_VERBOSE_LOGGING: true - NX_CLOUD_DISTRIBUTED_EXECUTION: ${{ !contains(github.event.pull_request.user.login, 'dependabot') && !contains(github.event.pull_request.user.login, 'renovate') }} - NX_CLOUD_AUTH_TOKEN: ${{ startsWith(github.repository, 'jmcdo29') && secrets.NX_CLOUD_TOKEN || 'ODFlNDgyYzItZTgwYy00OTQyLTkxNTgtOWQ4ZTVlNDU3OTU2fHJlYWQ=' }} + NX_CLOUD_DISTRIBUTED_EXECUTION: true + NX_CLOUD_AUTH_TOKEN: ${{ secrets.NX_CLOUD_TOKEN }} jobs: main: + name: Nx Cloud - Main Job + uses: nrwl/ci/.github/workflows/nx-cloud-main.yml@v0.2 + with: + parallel-commands: | + pnpm exec nx-cloud record -- pnpm exec nx workspace-lint + pnpm exec nx-cloud record -- pnpm exec nx format:check + parallel-commands-on-agents: | + pnpm exec nx affected --target=lint --parallel=3 + pnpm exec nx affected --target=test --parallel=3 --ci --code-coverage + pnpm exec nx affected --target=build --parallel=3 + pnpm exec nx affected --target=e2e + + report-coverage: runs-on: ubuntu-latest - if: ${{ github.event_name != 'pull_request' }} - steps: - - uses: actions/checkout@v3 - name: Checkout [main] - with: - fetch-depth: 0 - - name: Derive appropriate SHAs for base and head for `nx affected` commands - uses: nrwl/nx-set-shas@v2 - - name: Use Node.js 14 - uses: actions/setup-node@v3 - with: - node-version: 14.x - - name: Run Build and Tests - uses: ./.github/actions/run-tests - - pr: - runs-on: ubuntu-latest - if: ${{ github.event_name == 'pull_request' }} steps: - - uses: actions/checkout@v3 - with: - ref: ${{ github.event.pull_request.head.ref }} - repository: ${{github.event.pull_request.head.repo.full_name}} - fetch-depth: 0 - - name: Derive appropriate SHAs for base and head for `nx affected` commands - uses: nrwl/nx-set-shas@v2 - - name: Use Node.js 14 + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Node uses: actions/setup-node@v3 with: - node-version: 14.x - - name: Run Build and Tests - uses: ./.github/actions/run-tests + node-version: 16.x + - name: Install pnpm + run: npm i -g pnpm + - name: Install deps + run: pnpm i + - name: Collect Test Coverage + run: NX_CLOUD_DISTRIBUTED_EXECUTION=false pnpm nx run tools:collect + - name: Send Test Coverage:with + run: bash <(curl -Ls https://coverage.codacy.com/get.sh) report -r coverage/lcov.info + shell: bash + env: + CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }} analyze: name: Analyze @@ -63,66 +59,33 @@ jobs: language: ['javascript'] steps: - - name: Checkout repository - uses: actions/checkout@v3 - with: - fetch-depth: 2 - - name: Initialize CodeQL - uses: github/codeql-action/init@v2 - with: - languages: ${{ matrix.language }} - - name: Autobuild - uses: github/codeql-action/autobuild@v2 - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + - name: Checkout repository + uses: actions/checkout@v3 + with: + fetch-depth: 2 + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + - name: Autobuild + uses: github/codeql-action/autobuild@v2 + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 auto-merge: - needs: pr - if: contains(github.event.pull_request.user.login, 'dependabot') || contains(github.event.pull_request.user.login, 'renovate') + needs: main + if: contains(github.event.pull_request.user.login, 'dependabot') || contains(github.event.pull_request.user.login, 'renovate') && ${{ github.event_name == 'pull_request' }} runs-on: ubuntu-latest steps: - - name: automerge - uses: pascalgn/automerge-action@v0.15.2 - env: - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - MERGE_LABELS: "" - MERGE_METHOD: rebase - - send-coverage: - runs-on: ubuntu-latest - needs: [pr, main] - if: always() - steps: - - name: Checkout Repo - uses: actions/checkout@v3 - - - name: Download Coverage - uses: actions/download-artifact@v3 - with: - name: coverage - path: coverage/ - - - name: Send Coverage - run: bash <(curl -Ls https://coverage.codacy.com/get.sh) report -r coverage/lcov.info - shell: bash + - name: automerge + uses: pascalgn/automerge-action@v0.15.2 env: - CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }} + GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' + MERGE_LABELS: '' + MERGE_METHOD: rebase agents: - runs-on: ubuntu-latest - name: Agent 1 - timeout-minutes: 60 - strategy: - matrix: - agent: [ 1, 2, 3 ] - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 14.x - - name: Install pnpm - run: npm i -g pnpm - - name: Install deps - run: pnpm i --frozen-lockfile=false - - name: Start Nx Agent ${{ matrix.agent }} - run: pnpm nx-cloud start-agent + name: Nx Cloud - Agents + uses: nrwl/ci/.github/workflows/nx-cloud-agents.yml@v0.2 + with: + number-of-agents: 3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5b73b1d78..55555c52f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -55,18 +55,8 @@ jobs: - name: Stop Nx Cloud Agents run: pnpx -y nx-cloud stop-all-agents - agent_1: - runs-on: ubuntu-latest - name: Agent 1 - timeout-minutes: 60 - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 14.x - - name: Install pnpm - run: npm i -g pnpm - - - name: Install Dependencies - run: pnpm i --frozen-lockfile=false - - run: pnpx -y nx-cloud start-agent + agents: + name: Nx Cloud - Agents + uses: nrwl/ci/.github/workflows/nx-cloud-agents.yml@v0.2 + with: + number-of-agents: 1 diff --git a/.nxignore b/.nxignore new file mode 100644 index 000000000..bd5535a60 --- /dev/null +++ b/.nxignore @@ -0,0 +1 @@ +pnpm-lock.yaml diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..bd5535a60 --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +pnpm-lock.yaml diff --git a/integration/.c8rc b/integration/.c8rc index 889e9b828..484a3eef7 100644 --- a/integration/.c8rc +++ b/integration/.c8rc @@ -4,7 +4,7 @@ ], "reporter": [ "text", - "json" + "lcov" ], "reportDir": "integration/coverage" } diff --git a/nx.json b/nx.json index 42dcaf898..c9d07fd33 100644 --- a/nx.json +++ b/nx.json @@ -20,11 +20,21 @@ "default": { "runner": "@nrwl/nx-cloud", "options": { - "cacheableOperations": ["build", "test", "lint", "package", "prepare"], + "cacheableOperations": [ + "build", + "test", + "lint", + "package", + "prepare", + "e2e", + "e2e-run", + "docker-up", + "docker-ready" + ], "strictlyOrderedTargets": ["build", "package", "prepare"], "canTrackAnalytics": false, "showUsageWarnings": true, - "parallel": 1 + "accessToken": "ODFlNDgyYzItZTgwYy00OTQyLTkxNTgtOWQ4ZTVlNDU3OTU2fHJlYWQ=" } } }, diff --git a/package.json b/package.json index fbece0664..a588ca916 100644 --- a/package.json +++ b/package.json @@ -106,6 +106,7 @@ "hanbi": "^1.0.1", "husky": "^7.0.2", "kafkajs": "^1.15.0", + "lcov-result-merger": "^3.1.0", "lint-staged": "12.4.1", "module-alias": "^2.2.2", "morgan": "^1.10.0", @@ -142,6 +143,5 @@ "resolutions": { "apollo-cache-control": "0.14.0", "axios": "~0.27.0" - }, - "dependencies": {} + } } diff --git a/packages/cli/.c8rc b/packages/cli/.c8rc index a496b16bd..b64063b8e 100644 --- a/packages/cli/.c8rc +++ b/packages/cli/.c8rc @@ -3,6 +3,6 @@ "include": [ "packages/cli/src/**/*.ts" ], - "reporter": ["text", "json"], + "reporter": ["text", "lcov"], "reportDir": "./packages/cli/coverage" } diff --git a/packages/logger/.c8rc b/packages/logger/.c8rc index 54d940108..1c54a4d23 100644 --- a/packages/logger/.c8rc +++ b/packages/logger/.c8rc @@ -3,6 +3,6 @@ "include": [ "packages/logger/src/**/*.ts" ], - "reporter": ["text", "json"], + "reporter": ["text", "lcov"], "reportDir": "./packages/logger/coverage" } diff --git a/packages/nestjs-module/.c8rc b/packages/nestjs-module/.c8rc index 4915ef9c7..878dbfc20 100644 --- a/packages/nestjs-module/.c8rc +++ b/packages/nestjs-module/.c8rc @@ -3,6 +3,6 @@ "include": [ "packages/nestjs-module/src/**/*.ts" ], - "reporter": ["text", "json"], + "reporter": ["text", "lcov"], "reportDir": "./packages/nestjs-module/coverage" } diff --git a/packages/platform-express/.c8rc b/packages/platform-express/.c8rc index 687191fa4..d9cbff7d5 100644 --- a/packages/platform-express/.c8rc +++ b/packages/platform-express/.c8rc @@ -3,6 +3,6 @@ "include": [ "packages/platform-express/src/**/*.ts" ], - "reporter": ["text", "json"], + "reporter": ["text", "lcov"], "reportDir": "./packages/platform-express/coverage" } diff --git a/packages/platform-fastify/.c8rc b/packages/platform-fastify/.c8rc index 985a8fd03..0a21f650b 100644 --- a/packages/platform-fastify/.c8rc +++ b/packages/platform-fastify/.c8rc @@ -3,6 +3,6 @@ "include": [ "packages/platform-fastify/src/**/*.ts" ], - "reporter": ["text", "json"], + "reporter": ["text", "lcov"], "reportDir": "./packages/platform-fastify/coverage" } diff --git a/packages/platform-graphql-fastify/.c8rc b/packages/platform-graphql-fastify/.c8rc index a8ed02562..8a4a9c02a 100644 --- a/packages/platform-graphql-fastify/.c8rc +++ b/packages/platform-graphql-fastify/.c8rc @@ -3,6 +3,6 @@ "include": [ "packages/platform-graphql-fastify/src/**/*.ts" ], - "reporter": ["text", "json"], + "reporter": ["text", "lcov"], "reportDir": "./packages/platform-graphql-fastify/coverage" } diff --git a/packages/platform-graphql/.c8rc b/packages/platform-graphql/.c8rc index 0621d7e96..8e24e2ae0 100644 --- a/packages/platform-graphql/.c8rc +++ b/packages/platform-graphql/.c8rc @@ -3,6 +3,6 @@ "include": [ "packages/platform-graphql/src/**/*.ts" ], - "reporter": ["text", "json"], + "reporter": ["text", "lcov"], "reportDir": "./packages/platform-graphql/coverage" } diff --git a/packages/platform-grpc/.c8rc b/packages/platform-grpc/.c8rc index 7e8865f88..1b8276db8 100644 --- a/packages/platform-grpc/.c8rc +++ b/packages/platform-grpc/.c8rc @@ -3,6 +3,6 @@ "include": [ "packages/platform-grpc/src/**/*.ts" ], - "reporter": ["text", "json"], + "reporter": ["text", "lcov"], "reportDir": "./packages/platform-grpc/coverage" } diff --git a/packages/platform-kafka/.c8rc b/packages/platform-kafka/.c8rc index aae8be950..5063a1cfa 100644 --- a/packages/platform-kafka/.c8rc +++ b/packages/platform-kafka/.c8rc @@ -3,6 +3,6 @@ "include": [ "packages/platform-kafka/src/**/*.ts" ], - "reporter": ["text", "json"], + "reporter": ["text", "lcov"], "reportDir": "./packages/platform-kafka/coverage" } diff --git a/packages/platform-mqtt/.c8rc b/packages/platform-mqtt/.c8rc index 6032ea566..558ff48f3 100644 --- a/packages/platform-mqtt/.c8rc +++ b/packages/platform-mqtt/.c8rc @@ -3,6 +3,6 @@ "include": [ "packages/platform-mqtt/src/**/*.ts" ], - "reporter": ["text", "json"], + "reporter": ["text", "lcov"], "reportDir": "./packages/platform-mqtt/coverage" } diff --git a/packages/platform-nats/.c8rc b/packages/platform-nats/.c8rc index 8ff53cd8e..69ed075b6 100644 --- a/packages/platform-nats/.c8rc +++ b/packages/platform-nats/.c8rc @@ -3,6 +3,6 @@ "include": [ "packages/platform-nats/src/**/*.ts" ], - "reporter": ["text", "json"], + "reporter": ["text", "lcov"], "reportDir": "./packages/platform-nats/coverage" } diff --git a/packages/platform-rabbitmq/.c8rc b/packages/platform-rabbitmq/.c8rc index df0e9f075..b1d1e52bb 100644 --- a/packages/platform-rabbitmq/.c8rc +++ b/packages/platform-rabbitmq/.c8rc @@ -3,6 +3,6 @@ "include": [ "packages/platform-rabbitmq/src/**/*.ts" ], - "reporter": ["text", "json"], + "reporter": ["text", "lcov"], "reportDir": "./packages/platform-rabbitmq/coverage" } diff --git a/packages/platform-redis/.c8rc b/packages/platform-redis/.c8rc index 925f9b52d..55034cade 100644 --- a/packages/platform-redis/.c8rc +++ b/packages/platform-redis/.c8rc @@ -3,6 +3,6 @@ "include": [ "packages/platform-redis/src/**/*.ts" ], - "reporter": ["text", "json"], + "reporter": ["text", "lcov"], "reportDir": "./packages/platform-redis/coverage" } diff --git a/packages/platform-socket.io/.c8rc b/packages/platform-socket.io/.c8rc index 165761a29..93b9abff9 100644 --- a/packages/platform-socket.io/.c8rc +++ b/packages/platform-socket.io/.c8rc @@ -3,6 +3,6 @@ "include": [ "packages/platform-socket.io/src/**/*.ts" ], - "reporter": ["text", "json"], + "reporter": ["text", "lcov"], "reportDir": "./packages/platform-socket.io/coverage" } diff --git a/packages/platform-tcp/.c8rc b/packages/platform-tcp/.c8rc index 596cec0b6..94f744083 100644 --- a/packages/platform-tcp/.c8rc +++ b/packages/platform-tcp/.c8rc @@ -3,6 +3,6 @@ "include": [ "packages/platform-tcp/src/**/*.ts" ], - "reporter": ["text", "json"], + "reporter": ["text", "lcov"], "reportDir": "./packages/platform-tcp/coverage" } diff --git a/packages/platform-ws/.c8rc b/packages/platform-ws/.c8rc index 534824db4..8dcdcac98 100644 --- a/packages/platform-ws/.c8rc +++ b/packages/platform-ws/.c8rc @@ -3,6 +3,6 @@ "include": [ "packages/platform-ws/src/**/*.ts" ], - "reporter": ["text", "json"], + "reporter": ["text", "lcov"], "reportDir": "./packages/platform-ws/coverage" } diff --git a/packages/styler/.c8rc b/packages/styler/.c8rc index 630d056e6..f0e59aab7 100644 --- a/packages/styler/.c8rc +++ b/packages/styler/.c8rc @@ -3,6 +3,6 @@ "include": [ "packages/styler/src/**/*.ts" ], - "reporter": ["text", "json"], - "reportDir": "./packages/platform-styler/coverage" + "reporter": ["text", "lcov"], + "reportDir": "./packages/styler/coverage" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0e359ef97..64e7f9301 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -71,6 +71,7 @@ importers: hanbi: ^1.0.1 husky: ^7.0.2 kafkajs: ^1.15.0 + lcov-result-merger: ^3.1.0 lint-staged: 12.4.1 module-alias: ^2.2.2 morgan: ^1.10.0 @@ -164,6 +165,7 @@ importers: hanbi: 1.0.1 husky: 7.0.4 kafkajs: 1.15.0 + lcov-result-merger: 3.1.0 lint-staged: 12.4.1 module-alias: 2.2.2 morgan: 1.10.0 @@ -5785,6 +5787,13 @@ packages: - encoding dev: true + /append-buffer/1.0.2: + resolution: {integrity: sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=} + engines: {node: '>=0.10.0'} + dependencies: + buffer-equal: 1.0.0 + dev: true + /append-field/1.0.0: resolution: {integrity: sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=} dev: true @@ -6361,6 +6370,11 @@ packages: regexpu-core: 4.8.0 dev: true + /buffer-equal/1.0.0: + resolution: {integrity: sha1-WWFrSYME1Var1GaWayLu2j7KX74=} + engines: {node: '>=0.4.0'} + dev: true + /buffer-from/1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true @@ -6792,6 +6806,11 @@ packages: wrap-ansi: 7.0.0 dev: true + /clone-buffer/1.0.0: + resolution: {integrity: sha1-4+JbIHrE5wGvch4staFnksrD3Fg=} + engines: {node: '>= 0.10'} + dev: true + /clone-deep/4.0.1: resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} engines: {node: '>=6'} @@ -6807,10 +6826,27 @@ packages: mimic-response: 1.0.1 dev: true + /clone-stats/1.0.0: + resolution: {integrity: sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=} + dev: true + /clone/1.0.4: resolution: {integrity: sha1-2jCcwmPfFZlMaIypAheco8fNfH4=} engines: {node: '>=0.8'} + /clone/2.1.2: + resolution: {integrity: sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=} + engines: {node: '>=0.8'} + dev: true + + /cloneable-readable/1.1.3: + resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} + dependencies: + inherits: 2.0.4 + process-nextick-args: 2.0.1 + readable-stream: 2.3.7 + dev: true + /clsx/1.1.1: resolution: {integrity: sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==} engines: {node: '>=6'} @@ -8154,6 +8190,15 @@ packages: resolution: {integrity: sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=} dev: true + /duplexify/3.7.1: + resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 2.3.7 + stream-shift: 1.0.1 + dev: true + /duplexify/4.1.2: resolution: {integrity: sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==} dependencies: @@ -9150,6 +9195,13 @@ packages: resolution: {integrity: sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==} dev: true + /flush-write-stream/1.1.1: + resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.7 + dev: true + /flux/4.0.2_react@18.1.0: resolution: {integrity: sha512-u/ucO5ezm3nBvdaSGkWpDlzCePoV+a9x3KHmy13TV/5MzOaCZDN8Mfd94jmf0nOi8ZZay+nOKbBUkOe2VNaupQ==} peerDependencies: @@ -9173,6 +9225,18 @@ packages: debug: optional: true + /follow-redirects/1.14.9_debug@4.3.3: + resolution: {integrity: sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dependencies: + debug: 4.3.3_supports-color@6.1.0 + dev: true + /for-in/1.0.2: resolution: {integrity: sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=} engines: {node: '>=0.10.0'} @@ -9316,6 +9380,14 @@ packages: minipass: 3.1.5 dev: true + /fs-mkdirp-stream/1.0.0: + resolution: {integrity: sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=} + engines: {node: '>= 0.10'} + dependencies: + graceful-fs: 4.2.10 + through2: 2.0.5 + dev: true + /fs-monkey/1.0.3: resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} dev: true @@ -9487,6 +9559,22 @@ packages: is-glob: 4.0.3 dev: true + /glob-stream/6.1.0: + resolution: {integrity: sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=} + engines: {node: '>= 0.10'} + dependencies: + extend: 3.0.2 + glob: 7.2.0 + glob-parent: 3.1.0 + is-negated-glob: 1.0.0 + ordered-read-streams: 1.0.1 + pumpify: 1.5.1 + readable-stream: 2.3.7 + remove-trailing-separator: 1.1.0 + to-absolute-glob: 2.0.2 + unique-stream: 2.3.1 + dev: true + /glob-to-regexp/0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} dev: true @@ -10074,7 +10162,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.14.9 + follow-redirects: 1.14.9_debug@4.3.3 requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -10300,6 +10388,14 @@ packages: engines: {node: '>=8'} dev: true + /is-absolute/1.0.0: + resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} + engines: {node: '>=0.10.0'} + dependencies: + is-relative: 1.0.0 + is-windows: 1.0.2 + dev: true + /is-accessor-descriptor/0.1.6: resolution: {integrity: sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=} engines: {node: '>=0.10.0'} @@ -10519,6 +10615,11 @@ packages: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} dev: true + /is-negated-glob/1.0.0: + resolution: {integrity: sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=} + engines: {node: '>=0.10.0'} + dev: true + /is-negative-zero/2.0.1: resolution: {integrity: sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==} engines: {node: '>= 0.4'} @@ -10616,6 +10717,13 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-relative/1.0.0: + resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} + engines: {node: '>=0.10.0'} + dependencies: + is-unc-path: 1.0.0 + dev: true + /is-resolvable/1.1.0: resolution: {integrity: sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==} dev: true @@ -10686,6 +10794,13 @@ packages: resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=} dev: true + /is-unc-path/1.0.0: + resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} + engines: {node: '>=0.10.0'} + dependencies: + unc-path-regex: 0.1.2 + dev: true + /is-unicode-supported/0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -10694,6 +10809,11 @@ packages: resolution: {integrity: sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=} dev: true + /is-valid-glob/1.0.0: + resolution: {integrity: sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=} + engines: {node: '>=0.10.0'} + dev: true + /is-weakmap/2.0.1: resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} dev: true @@ -11486,6 +11606,30 @@ packages: package-json: 6.5.0 dev: true + /lazystream/1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + dependencies: + readable-stream: 2.3.7 + dev: true + + /lcov-result-merger/3.1.0: + resolution: {integrity: sha512-vGXaMNGZRr4cYvW+xMVg+rg7qd5DX9SbGXl+0S3k85+gRZVK4K7UvxPWzKb/qiMwe+4bx3EOrW2o4mbdb1WnsA==} + engines: {node: '>=4'} + hasBin: true + dependencies: + through2: 2.0.5 + vinyl: 2.2.1 + vinyl-fs: 3.0.3 + dev: true + + /lead/1.0.0: + resolution: {integrity: sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=} + engines: {node: '>= 0.10'} + dependencies: + flush-write-stream: 1.1.1 + dev: true + /leven/2.1.0: resolution: {integrity: sha1-wuep93IJTe6dNCAq6KzORoeHVYA=} engines: {node: '>=0.10.0'} @@ -12616,6 +12760,13 @@ packages: engines: {node: '>=10'} dev: true + /now-and-later/2.0.1: + resolution: {integrity: sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==} + engines: {node: '>= 0.10'} + dependencies: + once: 1.4.0 + dev: true + /npm-run-path/2.0.2: resolution: {integrity: sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=} engines: {node: '>=4'} @@ -12946,6 +13097,12 @@ packages: strip-ansi: 6.0.1 wcwidth: 1.0.1 + /ordered-read-streams/1.0.1: + resolution: {integrity: sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=} + dependencies: + readable-stream: 2.3.7 + dev: true + /original/1.0.2: resolution: {integrity: sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==} dependencies: @@ -13983,6 +14140,13 @@ packages: resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==} dev: true + /pump/2.0.1: + resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + /pump/3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: @@ -13990,6 +14154,14 @@ packages: once: 1.4.0 dev: true + /pumpify/1.5.1: + resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} + dependencies: + duplexify: 3.7.1 + inherits: 2.0.4 + pump: 2.0.1 + dev: true + /punycode/1.3.2: resolution: {integrity: sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=} dev: true @@ -14595,6 +14767,23 @@ packages: mdast-squeeze-paragraphs: 4.0.0 dev: true + /remove-bom-buffer/3.0.0: + resolution: {integrity: sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + is-utf8: 0.2.1 + dev: true + + /remove-bom-stream/1.2.0: + resolution: {integrity: sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=} + engines: {node: '>= 0.10'} + dependencies: + remove-bom-buffer: 3.0.0 + safe-buffer: 5.2.1 + through2: 2.0.5 + dev: true + /remove-trailing-separator/1.1.0: resolution: {integrity: sha1-wkvOKig62tW8P1jg1IJJuSN52O8=} dev: true @@ -14619,6 +14808,11 @@ packages: engines: {node: '>=0.10'} dev: true + /replace-ext/1.0.1: + resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} + engines: {node: '>= 0.10'} + dev: true + /require-directory/2.1.1: resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} engines: {node: '>=0.10.0'} @@ -14678,6 +14872,13 @@ packages: global-dirs: 0.1.1 dev: true + /resolve-options/1.1.0: + resolution: {integrity: sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=} + engines: {node: '>= 0.10'} + dependencies: + value-or-function: 3.0.0 + dev: true + /resolve-pathname/3.0.0: resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} dev: true @@ -16048,6 +16249,13 @@ packages: /through/2.3.8: resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=} + /through2-filter/3.0.0: + resolution: {integrity: sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==} + dependencies: + through2: 2.0.5 + xtend: 4.0.2 + dev: true + /through2/2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: @@ -16099,6 +16307,14 @@ packages: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} dev: true + /to-absolute-glob/2.0.2: + resolution: {integrity: sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=} + engines: {node: '>=0.10.0'} + dependencies: + is-absolute: 1.0.0 + is-negated-glob: 1.0.0 + dev: true + /to-fast-properties/2.0.0: resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} engines: {node: '>=4'} @@ -16141,6 +16357,13 @@ packages: safe-regex: 1.1.0 dev: true + /to-through/2.0.0: + resolution: {integrity: sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=} + engines: {node: '>= 0.10'} + dependencies: + through2: 2.0.5 + dev: true + /toidentifier/1.0.0: resolution: {integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==} engines: {node: '>=0.6'} @@ -16471,6 +16694,11 @@ packages: which-boxed-primitive: 1.0.2 dev: true + /unc-path-regex/0.1.2: + resolution: {integrity: sha1-5z3T17DXxe2G+6xrCufYxqadUPo=} + engines: {node: '>=0.10.0'} + dev: true + /unherit/1.1.3: resolution: {integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==} dependencies: @@ -16548,6 +16776,13 @@ packages: imurmurhash: 0.1.4 dev: true + /unique-stream/2.3.1: + resolution: {integrity: sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==} + dependencies: + json-stable-stringify-without-jsonify: 1.0.1 + through2-filter: 3.0.0 + dev: true + /unique-string/2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} @@ -16845,6 +17080,11 @@ packages: resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} dev: true + /value-or-function/3.0.0: + resolution: {integrity: sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=} + engines: {node: '>= 0.10'} + dev: true + /value-or-promise/1.0.11: resolution: {integrity: sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==} engines: {node: '>=12'} @@ -16884,6 +17124,54 @@ packages: vfile-message: 2.0.4 dev: true + /vinyl-fs/3.0.3: + resolution: {integrity: sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==} + engines: {node: '>= 0.10'} + dependencies: + fs-mkdirp-stream: 1.0.0 + glob-stream: 6.1.0 + graceful-fs: 4.2.10 + is-valid-glob: 1.0.0 + lazystream: 1.0.1 + lead: 1.0.0 + object.assign: 4.1.2 + pumpify: 1.5.1 + readable-stream: 2.3.7 + remove-bom-buffer: 3.0.0 + remove-bom-stream: 1.2.0 + resolve-options: 1.1.0 + through2: 2.0.5 + to-through: 2.0.0 + value-or-function: 3.0.0 + vinyl: 2.2.1 + vinyl-sourcemap: 1.1.0 + dev: true + + /vinyl-sourcemap/1.1.0: + resolution: {integrity: sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=} + engines: {node: '>= 0.10'} + dependencies: + append-buffer: 1.0.2 + convert-source-map: 1.8.0 + graceful-fs: 4.2.10 + normalize-path: 2.1.1 + now-and-later: 2.0.1 + remove-bom-buffer: 3.0.0 + vinyl: 2.2.1 + dev: true + + /vinyl/2.2.1: + resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} + engines: {node: '>= 0.10'} + dependencies: + clone: 2.1.2 + clone-buffer: 1.0.0 + clone-stats: 1.0.0 + cloneable-readable: 1.1.3 + remove-trailing-separator: 1.1.0 + replace-ext: 1.0.1 + dev: true + /w3c-hr-time/1.0.2: resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} dependencies: diff --git a/tools/coverage-merge.ts b/tools/coverage-merge.ts index f4b14ee06..5629dc1c1 100644 --- a/tools/coverage-merge.ts +++ b/tools/coverage-merge.ts @@ -7,7 +7,7 @@ import { join } from 'path'; const packageDir = 'packages'; const integrationDir = 'integration'; const coverageTempDir = 'coverage-tmp'; -const coverageFinal = 'coverage-final.json'; +const coverageFinal = 'lcov.info'; const coverageDir = 'coverage'; async function readPackagesDirectory(): Promise { @@ -37,7 +37,7 @@ async function mapCoverages(directories: string[]): Promise): Promise { for (const key of Object.keys(coverages)) { await promises.writeFile( - join(process.cwd(), coverageTempDir, key + '-coverage.json'), + join(process.cwd(), coverageTempDir, key + '-lcov.info'), coverages[key], ); } diff --git a/workspace.json b/workspace.json index 3fb0727e8..7dc84b17d 100644 --- a/workspace.json +++ b/workspace.json @@ -118,12 +118,54 @@ "sourceRoot": "integration/src", "targets": { "e2e": { + "executor": "@nrwl/workspace:run-commands", + "options": { + "commands": ["docker compose down"] + }, + "dependsOn": [ + { + "target": "e2e-run", + "projects": "self" + } + ] + }, + "e2e-run": { "executor": "nx-uvu:uvu", "options": { "rootDir": "./integration/test", "coverage": true, "coverageConfig": "./integration/.c8rc", "useSwc": true + }, + "dependsOn": [ + { + "target": "docker-ready", + "projects": "self" + } + ] + }, + "docker-ready": { + "executor": "@nrwl/workspace:run-commands", + "options": { + "commands": [ + "while ! nc -q0 localhost 1883 < /dev/null > /dev/null 2>&1; do sleep 10; done", + "while ! nc -q0 localhost 4222 < /dev/null > /dev/null 2>&1; do sleep 10; done", + "while ! nc -q0 localhost 5672 < /dev/null > /dev/null 2>&1; do sleep 10; done", + "while ! nc -q0 localhost 6379 < /dev/null > /dev/null 2>&1; do sleep 10; done" + ], + "parallel": true + }, + "dependsOn": [ + { + "target": "docker-up", + "projects": "self" + } + ] + }, + "docker-up": { + "executor": "@nrwl/workspace:run-commands", + "options": { + "commands": ["docker compose up -d"] } } }, @@ -582,7 +624,7 @@ "type": "library", "sourceRoot": "tools", "targets": { - "build": { + "compile": { "executor": "@nrwl/workspace:run-commands", "options": { "cwd": "./tools/", @@ -592,9 +634,29 @@ "collect": { "executor": "@nrwl/workspace:run-commands", "options": { - "commands": ["pnpm exec c8 uvu -r @swc/register ./ \"(spec\\.ts)\""], + "commands": [ + "echo 'Collection Coverages to single location' && node tools/coverage-merge.js", + "echo 'Making coverage directory' && mkdir coverage", + "echo 'Making initial lcov file' && touch coverage/lcov.info", + "echo 'Merging coverages with lcov-result-merger' && pnpm lcov-result-merger 'coverage-tmp/*' 'coverage/lcov.info'", + "echo 'done'" + ], "parallel": false - } + }, + "dependsOn": [ + { + "target": "compile", + "projects": "self" + }, + { + "target": "e2e", + "projects": "dependencies" + }, + { + "target": "test", + "projects": "dependencies" + } + ] }, "setup": { "executor": "@nrwl/workspace:run-commands", @@ -603,13 +665,32 @@ }, "dependsOn": [ { - "target": "build", + "target": "compile", "projects": "self" } ] } }, - "implicitDependencies": [] + "implicitDependencies": [ + "integration", + "cli", + "logger", + "nestjs-module", + "platform-express", + "platform-fastify", + "platform-graphql", + "platform-graphql-fastify", + "platform-mqtt", + "platform-grpc", + "platform-kafka", + "platform-nats", + "platform-redis", + "platform-rabbitmq", + "platform-socket.io", + "platform-tcp", + "platform-ws", + "styler" + ] } } }