From 49a52a1150d79058b4b943af005685311ddec3ec Mon Sep 17 00:00:00 2001 From: shortstacked Date: Mon, 28 Jul 2025 10:07:28 +0100 Subject: [PATCH] ci: Update Turbo config and GH actions (#17595) --- .../workflows/check-documentation-urls.yml | 16 +- .github/workflows/check-pr-title.yml | 16 -- .github/workflows/ci-master.yml | 40 ----- .github/workflows/ci-postgres-mysql.yml | 129 ++-------------- .github/workflows/ci-pull-requests.yml | 12 +- .github/workflows/docker-build-push.yml | 22 +-- .github/workflows/e2e-flaky.yml | 70 --------- .github/workflows/linting-reusable.yml | 24 +-- .github/workflows/units-tests-reusable.yml | 38 +---- .gitignore | 3 +- cypress/package.json | 2 +- package.json | 19 +-- .../ai-workflow-builder.ee/jest.config.js | 2 + .../@n8n/ai-workflow-builder.ee/package.json | 2 +- .../@n8n/ai-workflow-builder.ee/tsconfig.json | 3 +- packages/@n8n/api-types/package.json | 2 +- packages/@n8n/backend-common/package.json | 2 +- packages/@n8n/backend-test-utils/package.json | 6 +- packages/@n8n/benchmark/package.json | 4 +- packages/@n8n/client-oauth2/package.json | 2 +- packages/@n8n/codemirror-lang/package.json | 2 +- packages/@n8n/config/package.json | 2 +- packages/@n8n/constants/package.json | 2 +- packages/@n8n/db/package.json | 2 +- packages/@n8n/decorators/package.json | 2 +- packages/@n8n/di/package.json | 2 +- packages/@n8n/errors/package.json | 6 +- packages/@n8n/imap/package.json | 2 +- packages/@n8n/json-schema-to-zod/package.json | 2 +- packages/@n8n/nodes-langchain/package.json | 2 +- packages/@n8n/permissions/package.json | 2 +- packages/@n8n/task-runner/package.json | 2 +- packages/@n8n/utils/package.json | 2 +- packages/cli/package.json | 2 +- packages/core/package.json | 2 +- packages/frontend/@n8n/chat/package.json | 2 +- .../frontend/@n8n/composables/package.json | 2 +- .../frontend/@n8n/design-system/package.json | 2 +- packages/frontend/@n8n/i18n/package.json | 2 +- .../@n8n/rest-api-client/package.json | 2 +- packages/frontend/@n8n/stores/package.json | 2 +- packages/frontend/editor-ui/package.json | 2 +- packages/node-dev/package.json | 2 +- packages/nodes-base/package.json | 2 +- packages/testing/containers/package.json | 2 +- packages/testing/playwright/package.json | 2 +- packages/workflow/package.json | 2 +- turbo.json | 144 +----------------- 48 files changed, 88 insertions(+), 528 deletions(-) delete mode 100644 .github/workflows/e2e-flaky.yml create mode 100644 packages/@n8n/ai-workflow-builder.ee/jest.config.js diff --git a/.github/workflows/check-documentation-urls.yml b/.github/workflows/check-documentation-urls.yml index 37b8397775..97fc6c8fbf 100644 --- a/.github/workflows/check-documentation-urls.yml +++ b/.github/workflows/check-documentation-urls.yml @@ -16,20 +16,10 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 + - name: Setup Node.js + uses: n8n-io/n8n/.github/actions/setup-nodejs-blacksmith@f5fbbbe0a28a886451c886cac6b49192a39b0eea # v1.104.1 with: - node-version: 22.x - - - name: Setup corepack and pnpm - run: | - npm i -g corepack@0.33 - corepack enable - - - name: Install dependencies - run: pnpm install --frozen-lockfile - - - name: Build relevant packages - run: pnpm build:nodes + build-command: turbo build --filter=*nodes* - run: npm install --prefix=.github/scripts --no-package-lock diff --git a/.github/workflows/check-pr-title.yml b/.github/workflows/check-pr-title.yml index 2e6c55189b..0b9a0b614a 100644 --- a/.github/workflows/check-pr-title.yml +++ b/.github/workflows/check-pr-title.yml @@ -14,23 +14,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 5 steps: - - name: Check out branch - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 - with: - node-version: 22.x - - - name: Setup corepack and pnpm - run: | - npm i -g corepack@0.33 - corepack enable - - - name: Install dependencies - run: pnpm install --frozen-lockfile - - name: Validate PR title - id: validate_pr_title uses: n8n-io/validate-n8n-pull-request-title@c97ff722ac14ee0bda73766473bba764445db805 # v2.2.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml index 42f2da4c54..269b945982 100644 --- a/.github/workflows/ci-master.yml +++ b/.github/workflows/ci-master.yml @@ -6,64 +6,24 @@ on: - master jobs: - install-and-build: - runs-on: blacksmith-2vcpu-ubuntu-2204 - env: - NODE_OPTIONS: '--max-old-space-size=4096' - - timeout-minutes: 10 - - steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - - uses: useblacksmith/setup-node@65c6ca86fdeb0ab3d85e78f57e4f6a7e4780b391 # v5 - with: - node-version: 22.x - - - name: Setup corepack and pnpm - run: | - npm i -g corepack@0.33 - corepack enable - - - name: Install dependencies - run: pnpm install --frozen-lockfile - - - name: Setup build cache - uses: useblacksmith/caching-for-turbo@bafb57e7ebdbf1185762286ec94d24648cd3938a # v1 - - - name: Build - run: pnpm build - - - name: Cache build artifacts - uses: useblacksmith/cache/save@c5fe29eb0efdf1cf4186b9f7fcbbcbc0cf025662 # v5 - with: - path: ./packages/**/dist - key: ${{ github.sha }}-base:build - unit-test: name: Unit tests uses: ./.github/workflows/units-tests-reusable.yml - needs: install-and-build strategy: matrix: node-version: [20.x, 22.x, 24.x] with: ref: ${{ inputs.branch }} nodeVersion: ${{ matrix.node-version }} - cacheKey: ${{ github.sha }}-base:build collectCoverage: ${{ matrix.node-version == '22.x' }} - ignoreTurboCache: ${{ matrix.node-version == '22.x' }} - skipFrontendTests: ${{ matrix.node-version != '22.x' }} secrets: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} lint: name: Lint uses: ./.github/workflows/linting-reusable.yml - needs: install-and-build with: ref: ${{ inputs.branch }} - cacheKey: ${{ github.sha }}-base:build notify-on-failure: name: Notify Slack on failure diff --git a/.github/workflows/ci-postgres-mysql.yml b/.github/workflows/ci-postgres-mysql.yml index b103ab58f8..415ed05cce 100644 --- a/.github/workflows/ci-postgres-mysql.yml +++ b/.github/workflows/ci-postgres-mysql.yml @@ -21,41 +21,13 @@ concurrency: group: db-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: false +env: + NODE_OPTIONS: '--max-old-space-size=4096' + jobs: - build: - name: Install & Build - runs-on: ubuntu-latest - if: github.event_name != 'pull_request_review' || startsWith(github.event.pull_request.base.ref, 'release/') - steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 - with: - node-version: 22.x - - - name: Setup corepack and pnpm - run: | - npm i -g corepack@0.33 - corepack enable - - - run: pnpm install --frozen-lockfile - - - name: Setup build cache - uses: rharkor/caching-for-turbo@439abec0d28d21b192fa8817b744ffdf1ee5ac0d # v1.5 - - - name: Build - run: pnpm build - - - name: Cache build artifacts - uses: actions/cache/save@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0 - with: - path: ./packages/**/dist - key: ${{ github.sha }}:db-tests - sqlite-pooled: name: SQLite Pooled - runs-on: ubuntu-latest - needs: build + runs-on: blacksmith-2vcpu-ubuntu-2204 timeout-minutes: 20 env: DB_TYPE: sqlite @@ -63,25 +35,8 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 - with: - node-version: 22.x - - - name: Setup corepack and pnpm - run: | - npm i -g corepack@0.33 - corepack enable - - - run: pnpm install --frozen-lockfile - - - name: Setup build cache - uses: rharkor/caching-for-turbo@439abec0d28d21b192fa8817b744ffdf1ee5ac0d # v1.5 - - - name: Restore cached build artifacts - uses: actions/cache/restore@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0 - with: - path: ./packages/**/dist - key: ${{ github.sha }}:db-tests + - name: Setup and Build + uses: n8n-io/n8n/.github/actions/setup-nodejs-blacksmith@f5fbbbe0a28a886451c886cac6b49192a39b0eea # v1.104.1 - name: Test SQLite Pooled working-directory: packages/cli @@ -89,33 +44,15 @@ jobs: mariadb: name: MariaDB - runs-on: ubuntu-latest - needs: build + runs-on: blacksmith-2vcpu-ubuntu-2204 timeout-minutes: 20 env: DB_MYSQLDB_PASSWORD: password steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 - with: - node-version: 22.x - - - name: Setup corepack and pnpm - run: | - npm i -g corepack@0.33 - corepack enable - - - run: pnpm install --frozen-lockfile - - - name: Setup build cache - uses: rharkor/caching-for-turbo@439abec0d28d21b192fa8817b744ffdf1ee5ac0d # v1.5 - - - name: Restore cached build artifacts - uses: actions/cache/restore@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0 - with: - path: ./packages/**/dist - key: ${{ github.sha }}:db-tests + - name: Setup and Build + uses: n8n-io/n8n/.github/actions/setup-nodejs-blacksmith@f5fbbbe0a28a886451c886cac6b49192a39b0eea # v1.104.1 - name: Start MariaDB uses: isbang/compose-action@802a148945af6399a338c7906c267331b39a71af # v2.0.0 @@ -130,8 +67,7 @@ jobs: mysql: name: MySQL (${{ matrix.service-name }}) - runs-on: ubuntu-latest - needs: build + runs-on: blacksmith-2vcpu-ubuntu-2204 timeout-minutes: 20 strategy: matrix: @@ -141,25 +77,8 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 - with: - node-version: 22.x - - - name: Setup corepack and pnpm - run: | - npm i -g corepack@0.33 - corepack enable - - - run: pnpm install --frozen-lockfile - - - name: Setup build cache - uses: rharkor/caching-for-turbo@439abec0d28d21b192fa8817b744ffdf1ee5ac0d # v1.5 - - - name: Restore cached build artifacts - uses: actions/cache/restore@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0 - with: - path: ./packages/**/dist - key: ${{ github.sha }}:db-tests + - name: Setup and Build + uses: n8n-io/n8n/.github/actions/setup-nodejs-blacksmith@f5fbbbe0a28a886451c886cac6b49192a39b0eea # v1.104.1 - name: Start MySQL uses: isbang/compose-action@802a148945af6399a338c7906c267331b39a71af # v2.0.0 @@ -174,8 +93,7 @@ jobs: postgres: name: Postgres - runs-on: ubuntu-latest - needs: build + runs-on: blacksmith-2vcpu-ubuntu-2204 timeout-minutes: 20 env: DB_POSTGRESDB_PASSWORD: password @@ -183,25 +101,8 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 - with: - node-version: 22.x - - - name: Setup corepack and pnpm - run: | - npm i -g corepack@0.33 - corepack enable - - - run: pnpm install --frozen-lockfile - - - name: Setup build cache - uses: rharkor/caching-for-turbo@439abec0d28d21b192fa8817b744ffdf1ee5ac0d # v1.5 - - - name: Restore cached build artifacts - uses: actions/cache/restore@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0 - with: - path: ./packages/**/dist - key: ${{ github.sha }}:db-tests + - name: Setup and Build + uses: n8n-io/n8n/.github/actions/setup-nodejs-blacksmith@f5fbbbe0a28a886451c886cac6b49192a39b0eea # v1.104.1 - name: Start Postgres uses: isbang/compose-action@802a148945af6399a338c7906c267331b39a71af # v2.0.0 diff --git a/.github/workflows/ci-pull-requests.yml b/.github/workflows/ci-pull-requests.yml index 4c5a8062c5..a266e4389b 100644 --- a/.github/workflows/ci-pull-requests.yml +++ b/.github/workflows/ci-pull-requests.yml @@ -31,14 +31,10 @@ jobs: - packages/@n8n/codemirror-lang/** - .bundlemonrc.json - .github/workflows/ci-pull-requests.yml + - name: Setup and Build + uses: n8n-io/n8n/.github/actions/setup-nodejs-blacksmith@f5fbbbe0a28a886451c886cac6b49192a39b0eea # v1.104.1 - - name: Setup Environment and Build Project - uses: ./.github/actions/setup-and-build - with: - node-version: 22.x - enable-caching: true - - - name: Run formatcheck + - name: Run format check run: pnpm format:check - name: Run typecheck @@ -89,7 +85,6 @@ jobs: needs: install-and-build with: ref: refs/pull/${{ github.event.pull_request.number }}/merge - cacheKey: ${{ github.sha }}-base:build collectCoverage: true secrets: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} @@ -100,4 +95,3 @@ jobs: needs: install-and-build with: ref: refs/pull/${{ github.event.pull_request.number }}/merge - cacheKey: ${{ github.sha }}-base:build diff --git a/.github/workflows/docker-build-push.yml b/.github/workflows/docker-build-push.yml index 851a5ccdfd..d058818caa 100644 --- a/.github/workflows/docker-build-push.yml +++ b/.github/workflows/docker-build-push.yml @@ -166,26 +166,10 @@ jobs: with: fetch-depth: 0 - - name: Setup pnpm - uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 + - name: Setup and Build + uses: n8n-io/n8n/.github/actions/setup-nodejs-blacksmith@f5fbbbe0a28a886451c886cac6b49192a39b0eea # v1.104.1 with: - run_install: false - - - name: Setup Node.js - uses: useblacksmith/setup-node@65c6ca86fdeb0ab3d85e78f57e4f6a7e4780b391 # v5.0.4 - with: - node-version: 22.x - - - name: Install dependencies - run: pnpm install --frozen-lockfile - shell: bash - - - name: Configure Turborepo Cache - uses: useblacksmith/caching-for-turbo@bafb57e7ebdbf1185762286ec94d24648cd3938a # v1 - - - name: Build n8n for Docker - run: pnpm build:n8n - shell: bash + build-command: pnpm build:n8n - name: Determine Docker tags id: determine-tags diff --git a/.github/workflows/e2e-flaky.yml b/.github/workflows/e2e-flaky.yml deleted file mode 100644 index a703ca16d4..0000000000 --- a/.github/workflows/e2e-flaky.yml +++ /dev/null @@ -1,70 +0,0 @@ -name: Debug Flaky E2E Test - -on: - workflow_dispatch: - inputs: - test_name: - description: 'The name of the test to filter.' - required: true - type: string - burn_count: - description: 'Number of times to run the test.' - required: false - type: number - default: 50 - branch: - description: 'Optional: GitHub branch, tag, or SHA to test. Defaults to the branch selected in UI.' - required: false - type: string - -jobs: - debug-test: - runs-on: blacksmith-4vcpu-ubuntu-2204 - timeout-minutes: 60 - - steps: - - name: Checkout code - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - with: - ref: ${{ github.event.inputs.branch }} - - - name: Setup PNPM - uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 - - - name: Setup Node.js - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 - with: - node-version: 22.x - cache: 'pnpm' - - - name: Cache build artifacts - id: cache-build-artifacts - uses: useblacksmith/cache@c5fe29eb0efdf1cf4186b9f7fcbbcbc0cf025662 # v5.0.2 - with: - path: | - /home/runner/.cache/Cypress - ./packages/**/dist - key: ${{ github.ref }}-${{ github.sha }}-debug-build - restore-keys: | - ${{ github.ref }}-debug-build- - - - name: Install dependencies - run: pnpm install --frozen-lockfile - - - name: Build application - if: steps.cache-build-artifacts.outputs.cache-hit != 'true' - run: pnpm build - - - name: Cypress install - if: steps.cache-build-artifacts.outputs.cache-hit != 'true' - working-directory: cypress - run: pnpm cypress:install - - - name: Run Flaky Debug Command - env: - TEST_NAME: ${{ github.event.inputs.test_name }} - BURN_COUNT: ${{ github.event.inputs.burn_count }} - NODE_OPTIONS: --dns-result-order=ipv4first - E2E_TESTS: true - SHELL: /bin/sh - run: pnpm run debug:flaky:e2e "${{ env.TEST_NAME }}" "${{ env.BURN_COUNT }}" diff --git a/.github/workflows/linting-reusable.yml b/.github/workflows/linting-reusable.yml index 90773bd4a9..5d2982ba88 100644 --- a/.github/workflows/linting-reusable.yml +++ b/.github/workflows/linting-reusable.yml @@ -13,11 +13,6 @@ on: required: false type: string default: 22.x - cacheKey: - description: Cache key for modules and build artifacts. - required: false - type: string - default: '' jobs: lint: @@ -28,21 +23,8 @@ jobs: with: ref: ${{ inputs.ref }} - - name: Setup Environment - uses: n8n-io/n8n/.github/actions/setup-and-build@7e870b8f7f5a39bb8bf82d1f42b6d44febc0082c # v1.100.1 + - name: Build and Test + uses: n8n-io/n8n/.github/actions/setup-nodejs-blacksmith@f5fbbbe0a28a886451c886cac6b49192a39b0eea # v1.104.1 with: + build-command: pnpm lint node-version: ${{ inputs.nodeVersion }} - enable-caching: true - skip-build: ${{ inputs.cacheKey != '' }} - - - name: Lint Backend - run: pnpm lint:backend - - - name: Lint Nodes - run: pnpm lint:nodes - - - name: Lint Frontend - run: pnpm lint:frontend - - - name: Lint Testing - run: pnpm lint:testing diff --git a/.github/workflows/units-tests-reusable.yml b/.github/workflows/units-tests-reusable.yml index a47fa0d82b..f1cfb4b944 100644 --- a/.github/workflows/units-tests-reusable.yml +++ b/.github/workflows/units-tests-reusable.yml @@ -13,23 +13,10 @@ on: required: false type: string default: 22.x - cacheKey: - description: Cache key for modules and build artifacts. - required: false - default: '' - type: string collectCoverage: required: false default: false type: boolean - ignoreTurboCache: - required: false - default: false - type: boolean - skipFrontendTests: - required: false - default: false - type: boolean secrets: CODECOV_TOKEN: description: 'Codecov upload token.' @@ -40,36 +27,17 @@ jobs: name: Unit tests runs-on: blacksmith-4vcpu-ubuntu-2204 env: - TURBO_FORCE: ${{ inputs.ignoreTurboCache }} COVERAGE_ENABLED: ${{ inputs.collectCoverage }} steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: ref: ${{ inputs.ref }} - - name: Setup Environment and Build Project - uses: n8n-io/n8n/.github/actions/setup-and-build@7e870b8f7f5a39bb8bf82d1f42b6d44febc0082c # v1.100.1 + - name: Build and Test + uses: n8n-io/n8n/.github/actions/setup-nodejs-blacksmith@f5fbbbe0a28a886451c886cac6b49192a39b0eea # v1.104.1 with: + build-command: pnpm test:ci node-version: ${{ inputs.nodeVersion }} - skip-build: ${{ inputs.cacheKey != '' }} - - - name: Restore cached build artifacts only - if: ${{ inputs.cacheKey != '' }} - uses: useblacksmith/cache/restore@c5fe29eb0efdf1cf4186b9f7fcbbcbc0cf025662 # v5.0.2 - with: - path: ./packages/**/dist - key: ${{ inputs.cacheKey }} - fail-on-cache-miss: true - - - name: Test Backend - run: pnpm test:backend - - - name: Test Nodes - run: pnpm test:nodes - - - name: Test Frontend - if: ${{ !inputs.skipFrontendTests }} - run: pnpm test:frontend - name: Upload test results to Codecov if: ${{ !cancelled() }} diff --git a/.gitignore b/.gitignore index 04e3295759..97903e13b6 100644 --- a/.gitignore +++ b/.gitignore @@ -33,5 +33,4 @@ test-results/ compiled_app_output trivy_report* compiled -jest.config.js -packages/cli/src/modules/my-feature \ No newline at end of file +packages/cli/src/modules/my-feature diff --git a/cypress/package.json b/cypress/package.json index 114c984e1d..4dcf1ddc32 100644 --- a/cypress/package.json +++ b/cypress/package.json @@ -11,7 +11,7 @@ "format": "biome format --write .", "format:check": "biome ci .", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "develop": "cd ..; pnpm dev:e2e:server", "start": "cd ..; pnpm start" }, diff --git a/package.json b/package.json index d037b844bb..d44a4960af 100644 --- a/package.json +++ b/package.json @@ -11,9 +11,6 @@ "prepare": "node scripts/prepare.mjs", "preinstall": "node scripts/block-npm-install.js", "build": "turbo run build", - "build:backend": "turbo run build:backend", - "build:frontend": "turbo run build:frontend", - "build:nodes": "turbo run build:nodes", "build:n8n": "node scripts/build-n8n.mjs", "build:deploy": "node scripts/build-n8n.mjs", "build:docker": "node scripts/build-n8n.mjs && node scripts/dockerize-n8n.mjs", @@ -28,16 +25,13 @@ "dev:e2e": "cd cypress && pnpm run test:e2e:dev", "debug:flaky:e2e": "cd cypress && pnpm run test:flaky", "dev:e2e:server": "run-p start dev:fe:editor", - "clean": "turbo run clean --parallel", + "clean": "turbo run clean", "reset": "node scripts/ensure-zx.mjs && zx scripts/reset.mjs", "format": "turbo run format && node scripts/format.mjs", "format:check": "turbo run format:check", "lint": "turbo run lint", - "lintfix": "turbo run lintfix", - "lint:backend": "turbo run lint:backend", - "lint:nodes": "turbo run lint:nodes", - "lint:frontend": "turbo run lint:frontend", - "lint:testing": "turbo run lint:testing", + "lint:affected": "turbo run lint --affected", + "lint:fix": "turbo run lint:fix", "optimize-svg": "find ./packages -name '*.svg' ! -name 'pipedrive.svg' -print0 | xargs -0 -P16 -L20 npx svgo", "setup-backend-module": "node scripts/ensure-zx.mjs && zx scripts/backend-module/setup.mjs", "start": "run-script-os", @@ -45,12 +39,11 @@ "start:tunnel": "./packages/cli/bin/n8n start --tunnel", "start:windows": "cd packages/cli/bin && n8n", "test": "JEST_JUNIT_CLASSNAME={filepath} turbo run test", - "test:backend": "turbo run test:backend --concurrency=1", - "test:frontend": "turbo run test:frontend --concurrency=1", - "test:nodes": "turbo run test:nodes --concurrency=1", + "test:ci": "turbo run test --continue --concurrency=1", + "test:affected": "turbo run test --affected --concurrency=1", "test:with:docker": "pnpm --filter=n8n-playwright run test:standard", "test:show:report": "pnpm --filter=n8n-playwright exec playwright show-report", - "watch": "turbo run watch --parallel", + "watch": "turbo run watch", "webhook": "./packages/cli/bin/n8n webhook", "worker": "./packages/cli/bin/n8n worker" }, diff --git a/packages/@n8n/ai-workflow-builder.ee/jest.config.js b/packages/@n8n/ai-workflow-builder.ee/jest.config.js new file mode 100644 index 0000000000..d6c48554a7 --- /dev/null +++ b/packages/@n8n/ai-workflow-builder.ee/jest.config.js @@ -0,0 +1,2 @@ +/** @type {import('jest').Config} */ +module.exports = require('../../../jest.config'); diff --git a/packages/@n8n/ai-workflow-builder.ee/package.json b/packages/@n8n/ai-workflow-builder.ee/package.json index a2bc7b42c2..982a7d5159 100644 --- a/packages/@n8n/ai-workflow-builder.ee/package.json +++ b/packages/@n8n/ai-workflow-builder.ee/package.json @@ -11,7 +11,7 @@ "test:coverage": "jest --coverage", "test:watch": "jest --watch", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\"", "deps:graph": "madge src/index.ts --image deps-graph.svg", "deps:graph:service": "madge src/ai-workflow-builder-agent.service.ts --image deps-service.svg", diff --git a/packages/@n8n/ai-workflow-builder.ee/tsconfig.json b/packages/@n8n/ai-workflow-builder.ee/tsconfig.json index 7891f2b50f..6629cbe9ff 100644 --- a/packages/@n8n/ai-workflow-builder.ee/tsconfig.json +++ b/packages/@n8n/ai-workflow-builder.ee/tsconfig.json @@ -11,7 +11,8 @@ "paths": { "@/*": ["./*"] }, - "tsBuildInfoFile": "dist/typecheck.tsbuildinfo" + "tsBuildInfoFile": "dist/typecheck.tsbuildinfo", + "types": ["node", "jest"] }, "include": ["src/**/*.ts", "test/**/*.ts", "evaluations/**/*.ts"] } diff --git a/packages/@n8n/api-types/package.json b/packages/@n8n/api-types/package.json index 11c18e758e..58d31ca451 100644 --- a/packages/@n8n/api-types/package.json +++ b/packages/@n8n/api-types/package.json @@ -9,7 +9,7 @@ "format": "biome format --write .", "format:check": "biome ci .", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "watch": "tsc -p tsconfig.build.json --watch", "test": "jest", "test:dev": "jest --watch" diff --git a/packages/@n8n/backend-common/package.json b/packages/@n8n/backend-common/package.json index 7ab99baafe..e9c4c1e6db 100644 --- a/packages/@n8n/backend-common/package.json +++ b/packages/@n8n/backend-common/package.json @@ -9,7 +9,7 @@ "format": "biome format --write .", "format:check": "biome ci .", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "watch": "tsc -p tsconfig.build.json --watch", "test": "jest", "test:dev": "jest --watch" diff --git a/packages/@n8n/backend-test-utils/package.json b/packages/@n8n/backend-test-utils/package.json index 8ca569296b..d0cc222988 100644 --- a/packages/@n8n/backend-test-utils/package.json +++ b/packages/@n8n/backend-test-utils/package.json @@ -9,10 +9,10 @@ "format": "biome format --write .", "format:check": "biome ci .", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "watch": "tsc -p tsconfig.build.json --watch", - "test": "jest", - "test:dev": "jest --watch" + "test": "echo \"WARNING: no test specified\" && exit 0", + "test:dev": "echo \"WARNING: no test specified\" && exit 0" }, "main": "dist/index.js", "module": "src/index.ts", diff --git a/packages/@n8n/benchmark/package.json b/packages/@n8n/benchmark/package.json index 041bb1552d..03dcd788fd 100644 --- a/packages/@n8n/benchmark/package.json +++ b/packages/@n8n/benchmark/package.json @@ -8,9 +8,9 @@ "format": "biome format --write .", "format:check": "biome ci .", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "start": "./bin/n8n-benchmark", - "test": "echo \"Error: no test specified\" && exit 1", + "test": "echo \"WARNING: no test specified\" && exit 0", "typecheck": "tsc --noEmit", "benchmark": "zx scripts/run.mjs", "benchmark-in-cloud": "pnpm benchmark --env cloud", diff --git a/packages/@n8n/client-oauth2/package.json b/packages/@n8n/client-oauth2/package.json index 857707a99f..13d68d1024 100644 --- a/packages/@n8n/client-oauth2/package.json +++ b/packages/@n8n/client-oauth2/package.json @@ -9,7 +9,7 @@ "format": "biome format --write src test", "format:check": "biome ci src test", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "watch": "tsc -p tsconfig.build.json --watch", "test": "jest", "test:dev": "jest --watch" diff --git a/packages/@n8n/codemirror-lang/package.json b/packages/@n8n/codemirror-lang/package.json index cddb07e93e..737ed74acf 100644 --- a/packages/@n8n/codemirror-lang/package.json +++ b/packages/@n8n/codemirror-lang/package.json @@ -23,7 +23,7 @@ "build": "tsc -p tsconfig.build.json", "test": "jest", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "format": "biome format --write src test", "format:check": "biome ci src test" }, diff --git a/packages/@n8n/config/package.json b/packages/@n8n/config/package.json index e5da266047..5c08f5aec6 100644 --- a/packages/@n8n/config/package.json +++ b/packages/@n8n/config/package.json @@ -9,7 +9,7 @@ "format": "biome format --write src test", "format:check": "biome ci src test", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "watch": "tsc -p tsconfig.build.json --watch", "test": "jest", "test:dev": "jest --watch" diff --git a/packages/@n8n/constants/package.json b/packages/@n8n/constants/package.json index 971a8efbac..ec7b367174 100644 --- a/packages/@n8n/constants/package.json +++ b/packages/@n8n/constants/package.json @@ -9,7 +9,7 @@ "format": "biome format --write .", "format:check": "biome ci .", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "watch": "tsc -p tsconfig.build.json --watch" }, "main": "dist/index.js", diff --git a/packages/@n8n/db/package.json b/packages/@n8n/db/package.json index 860856827e..004d4866a4 100644 --- a/packages/@n8n/db/package.json +++ b/packages/@n8n/db/package.json @@ -9,7 +9,7 @@ "format": "biome format --write .", "format:check": "biome ci .", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "watch": "tsc -p tsconfig.build.json --watch", "test": "jest", "test:dev": "jest --watch" diff --git a/packages/@n8n/decorators/package.json b/packages/@n8n/decorators/package.json index 1ebdbe1fc9..bf9c775de3 100644 --- a/packages/@n8n/decorators/package.json +++ b/packages/@n8n/decorators/package.json @@ -9,7 +9,7 @@ "format": "biome format --write .", "format:check": "biome ci .", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "watch": "tsc -p tsconfig.build.json --watch", "test": "jest", "test:dev": "jest --watch" diff --git a/packages/@n8n/di/package.json b/packages/@n8n/di/package.json index 25b09b6c3f..bdc483bc5b 100644 --- a/packages/@n8n/di/package.json +++ b/packages/@n8n/di/package.json @@ -9,7 +9,7 @@ "format": "biome format --write .", "format:check": "biome ci .", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "watch": "tsc -p tsconfig.build.json --watch", "test": "jest", "test:dev": "jest --watch" diff --git a/packages/@n8n/errors/package.json b/packages/@n8n/errors/package.json index 36977f97a6..3c050180e2 100644 --- a/packages/@n8n/errors/package.json +++ b/packages/@n8n/errors/package.json @@ -9,10 +9,10 @@ "format": "biome format --write .", "format:check": "biome ci .", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "watch": "tsc -p tsconfig.build.json --watch", - "test": "jest", - "test:dev": "jest --watch" + "test": "echo \"WARNING: no test specified\" && exit 0", + "test:dev": "echo \"WARNING: no test specified\" && exit 0" }, "main": "dist/index.js", "module": "src/index.ts", diff --git a/packages/@n8n/imap/package.json b/packages/@n8n/imap/package.json index 1e1e463247..e89f052d2d 100644 --- a/packages/@n8n/imap/package.json +++ b/packages/@n8n/imap/package.json @@ -9,7 +9,7 @@ "format": "biome format --write src test", "format:check": "biome ci src test", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "watch": "tsc -p tsconfig.build.json --watch", "test": "vitest run", "test:dev": "vitest --silent=false" diff --git a/packages/@n8n/json-schema-to-zod/package.json b/packages/@n8n/json-schema-to-zod/package.json index 9b1bdd7b94..d8a881406c 100644 --- a/packages/@n8n/json-schema-to-zod/package.json +++ b/packages/@n8n/json-schema-to-zod/package.json @@ -22,7 +22,7 @@ "format": "biome format --write src", "format:check": "biome ci src", "lint": "eslint src --quiet", - "lintfix": "eslint src --fix", + "lint:fix": "eslint src --fix", "build:types": "tsc -p tsconfig.types.json", "build:cjs": "tsc -p tsconfig.cjs.json && node postcjs.cjs", "build:esm": "tsc -p tsconfig.esm.json && node postesm.cjs", diff --git a/packages/@n8n/nodes-langchain/package.json b/packages/@n8n/nodes-langchain/package.json index da66d476b8..f0e26c4144 100644 --- a/packages/@n8n/nodes-langchain/package.json +++ b/packages/@n8n/nodes-langchain/package.json @@ -13,7 +13,7 @@ "format": "biome format --write .", "format:check": "biome ci .", "lint": "eslint nodes credentials utils --quiet", - "lintfix": "eslint nodes credentials utils --fix", + "lint:fix": "eslint nodes credentials utils --fix", "watch": "tsup --watch nodes --watch credentials --watch utils --watch types --tsconfig tsconfig.build.json --onSuccess \"node ./scripts/post-build.js\"", "test": "jest", "test:dev": "jest --watch" diff --git a/packages/@n8n/permissions/package.json b/packages/@n8n/permissions/package.json index e3d8b76ee2..4722b8d8cf 100644 --- a/packages/@n8n/permissions/package.json +++ b/packages/@n8n/permissions/package.json @@ -9,7 +9,7 @@ "format": "biome format --write .", "format:check": "biome ci .", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "watch": "tsc -p tsconfig.build.json --watch", "test": "jest", "test:dev": "jest --watch" diff --git a/packages/@n8n/task-runner/package.json b/packages/@n8n/task-runner/package.json index 82162b2030..1a8d3112c5 100644 --- a/packages/@n8n/task-runner/package.json +++ b/packages/@n8n/task-runner/package.json @@ -12,7 +12,7 @@ "test": "jest", "test:watch": "jest --watch", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\"" }, "main": "dist/start.js", diff --git a/packages/@n8n/utils/package.json b/packages/@n8n/utils/package.json index 301ba3ea15..d6ecc57e50 100644 --- a/packages/@n8n/utils/package.json +++ b/packages/@n8n/utils/package.json @@ -25,7 +25,7 @@ "test": "vitest run", "test:dev": "vitest --silent=false", "lint": "eslint src --quiet", - "lintfix": "eslint src --fix", + "lint:fix": "eslint src --fix", "format": "biome format --write . && prettier --write . --ignore-path ../../../.prettierignore", "format:check": "biome ci . && prettier --check . --ignore-path ../../../.prettierignore" }, diff --git a/packages/cli/package.json b/packages/cli/package.json index 3a9992a71b..f17ffc6292 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -16,7 +16,7 @@ "format": "biome format --write .", "format:check": "biome ci .", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "start": "run-script-os", "start:default": "cd bin && ./n8n", "start:windows": "cd bin && n8n", diff --git a/packages/core/package.json b/packages/core/package.json index b58993b2e5..a22d48e79b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -17,7 +17,7 @@ "format": "biome format --write .", "format:check": "biome ci .", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix", + "lint:fix": "eslint . --fix", "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\"", "test": "jest", "test:dev": "jest --watch" diff --git a/packages/frontend/@n8n/chat/package.json b/packages/frontend/@n8n/chat/package.json index b98e67adfd..f683160fdf 100644 --- a/packages/frontend/@n8n/chat/package.json +++ b/packages/frontend/@n8n/chat/package.json @@ -11,7 +11,7 @@ "test": "vitest run", "typecheck": "vue-tsc --noEmit", "lint": "eslint src --quiet", - "lintfix": "eslint src --fix", + "lint:fix": "eslint src --fix", "format": "biome format --write src .storybook && prettier --write src/ --ignore-path ../../../../.prettierignore", "format:check": "biome ci src .storybook && prettier --check src/ --ignore-path ../../../../.prettierignore", "storybook": "storybook dev -p 6006 --no-open", diff --git a/packages/frontend/@n8n/composables/package.json b/packages/frontend/@n8n/composables/package.json index e61034d296..d737463d40 100644 --- a/packages/frontend/@n8n/composables/package.json +++ b/packages/frontend/@n8n/composables/package.json @@ -20,7 +20,7 @@ "test": "vitest run", "test:dev": "vitest --silent=false", "lint": "eslint src --quiet", - "lintfix": "eslint src --fix", + "lint:fix": "eslint src --fix", "format": "biome format --write . && prettier --write . --ignore-path ../../../../.prettierignore", "format:check": "biome ci . && prettier --check . --ignore-path ../../../../.prettierignore" }, diff --git a/packages/frontend/@n8n/design-system/package.json b/packages/frontend/@n8n/design-system/package.json index ef54033516..3b4a016067 100644 --- a/packages/frontend/@n8n/design-system/package.json +++ b/packages/frontend/@n8n/design-system/package.json @@ -18,7 +18,7 @@ "format": "biome format --write . && prettier --write . --ignore-path ../../../../.prettierignore", "format:check": "biome ci . && prettier --check . --ignore-path ../../../../.prettierignore", "lint": "eslint src --quiet", - "lintfix": "eslint src --fix" + "lint:fix": "eslint src --fix" }, "devDependencies": { "@n8n/eslint-config": "workspace:*", diff --git a/packages/frontend/@n8n/i18n/package.json b/packages/frontend/@n8n/i18n/package.json index f0468159d7..dbf724169c 100644 --- a/packages/frontend/@n8n/i18n/package.json +++ b/packages/frontend/@n8n/i18n/package.json @@ -28,7 +28,7 @@ "test": "vitest run", "test:dev": "vitest --silent=false", "lint": "eslint src --quiet", - "lintfix": "eslint src --fix", + "lint:fix": "eslint src --fix", "format": "biome format --write . && prettier --write . --ignore-path ../../../../.prettierignore", "format:check": "biome ci . && prettier --check . --ignore-path ../../../../.prettierignore" }, diff --git a/packages/frontend/@n8n/rest-api-client/package.json b/packages/frontend/@n8n/rest-api-client/package.json index 65c81c9084..5913d25aea 100644 --- a/packages/frontend/@n8n/rest-api-client/package.json +++ b/packages/frontend/@n8n/rest-api-client/package.json @@ -28,7 +28,7 @@ "test": "vitest run", "test:dev": "vitest --silent=false", "lint": "eslint src --quiet", - "lintfix": "eslint src --fix", + "lint:fix": "eslint src --fix", "format": "biome format --write . && prettier --write . --ignore-path ../../../../.prettierignore", "format:check": "biome ci . && prettier --check . --ignore-path ../../../../.prettierignore" }, diff --git a/packages/frontend/@n8n/stores/package.json b/packages/frontend/@n8n/stores/package.json index d29cd9a53c..c2a6eedb6c 100644 --- a/packages/frontend/@n8n/stores/package.json +++ b/packages/frontend/@n8n/stores/package.json @@ -28,7 +28,7 @@ "test": "vitest run", "test:dev": "vitest --silent=false", "lint": "eslint src --quiet", - "lintfix": "eslint src --fix", + "lint:fix": "eslint src --fix", "format": "biome format --write . && prettier --write . --ignore-path ../../../../.prettierignore", "format:check": "biome ci . && prettier --check . --ignore-path ../../../../.prettierignore" }, diff --git a/packages/frontend/editor-ui/package.json b/packages/frontend/editor-ui/package.json index 11dcc4c47e..2011a2c33d 100644 --- a/packages/frontend/editor-ui/package.json +++ b/packages/frontend/editor-ui/package.json @@ -11,7 +11,7 @@ "typecheck:watch": "vue-tsc --watch --noEmit", "dev": "pnpm serve", "lint": "eslint src --quiet", - "lintfix": "eslint src --fix", + "lint:fix": "eslint src --fix", "format": "biome format --write . && prettier --write . --ignore-path ../../../.prettierignore", "format:check": "biome ci . && prettier --check . --ignore-path ../../../.prettierignore", "serve": "cross-env VUE_APP_URL_BASE_API=http://localhost:5678/ vite --host 0.0.0.0 --port 8080 dev", diff --git a/packages/node-dev/package.json b/packages/node-dev/package.json index ee3df1e2a1..af3cf5a313 100644 --- a/packages/node-dev/package.json +++ b/packages/node-dev/package.json @@ -16,7 +16,7 @@ "format": "biome format --write .", "format:check": "biome ci .", "lint": "eslint src --quiet", - "lintfix": "eslint src --fix", + "lint:fix": "eslint src --fix", "prepack": "echo \"Building project...\" && rm -rf dist && tsc -b", "watch": "tsc --watch" }, diff --git a/packages/nodes-base/package.json b/packages/nodes-base/package.json index 913cde1005..82013ce728 100644 --- a/packages/nodes-base/package.json +++ b/packages/nodes-base/package.json @@ -12,7 +12,7 @@ "format": "biome format --write .", "format:check": "biome ci .", "lint": "eslint nodes credentials utils test --quiet && node ./scripts/validate-load-options-methods.js", - "lintfix": "eslint nodes credentials utils test --fix", + "lint:fix": "eslint nodes credentials utils test --fix", "watch": "tsc-watch -p tsconfig.build.cjs.json --onCompilationComplete \"pnpm copy-nodes-json && tsc-alias -p tsconfig.build.cjs.json\" --onSuccess \"pnpm n8n-generate-metadata\"", "test": "jest", "test:dev": "jest --watch" diff --git a/packages/testing/containers/package.json b/packages/testing/containers/package.json index ac2c2643f9..73b9e3e882 100644 --- a/packages/testing/containers/package.json +++ b/packages/testing/containers/package.json @@ -15,7 +15,7 @@ "stack:clean:networks": "docker network ls --filter 'label=org.testcontainers=true' -q | xargs -r docker network rm 2>/dev/null", "stack:clean:all": "pnpm run stack:clean:containers && pnpm run stack:clean:networks", "lint": "eslint . --quiet", - "lintfix": "eslint . --fix" + "lint:fix": "eslint . --fix" }, "keywords": [], "author": "", diff --git a/packages/testing/playwright/package.json b/packages/testing/playwright/package.json index f060beed50..87baf3b129 100644 --- a/packages/testing/playwright/package.json +++ b/packages/testing/playwright/package.json @@ -2,7 +2,7 @@ "name": "n8n-playwright", "private": true, "scripts": { - "test": "playwright test", + "test:all": "playwright test", "test:local:reset": "N8N_BASE_URL=http://localhost:5678 RESET_E2E_DB=true playwright test --workers=4", "test:local": "N8N_BASE_URL=http://localhost:5678 playwright test", "test:standard": "playwright test --project=mode:standard*", diff --git a/packages/workflow/package.json b/packages/workflow/package.json index c408e4fce1..2b9a1dff9c 100644 --- a/packages/workflow/package.json +++ b/packages/workflow/package.json @@ -27,7 +27,7 @@ "format": "biome format --write .", "format:check": "biome ci .", "lint": "eslint src --quiet", - "lintfix": "eslint src --fix", + "lint:fix": "eslint src --fix", "watch": "tsc --build tsconfig.build.esm.json tsconfig.build.cjs.json --watch", "test": "vitest run", "test:dev": "vitest --watch" diff --git a/turbo.json b/turbo.json index 951664a47e..7c478afd55 100644 --- a/turbo.json +++ b/turbo.json @@ -1,28 +1,6 @@ { - "$schema": "https://turbo.build/schema.json", - "ui": "stream", - "remoteCache": { - "enabled": true, - "timeout": 90, - "uploadTimeout": 90 - }, - "globalEnv": ["CI", "COVERAGE_ENABLED"], "tasks": { - "clean": { - "cache": false - }, - "build:playwright": { - "dependsOn": ["install-browsers:ci", "build"] - }, - "build:backend": { - "dependsOn": ["n8n#build"] - }, - "build:frontend": { - "dependsOn": ["n8n-editor-ui#build"] - }, - "build:nodes": { - "dependsOn": ["n8n-nodes-base#build", "@n8n/n8n-nodes-langchain#build"] - }, + "clean": { "cache": false }, "build": { "dependsOn": ["^build"], "outputs": ["dist/**"] @@ -32,124 +10,18 @@ }, "format": {}, "format:check": {}, - "lint:backend": { - "dependsOn": [ - "@n8n/eslint-config#build", - "^build", - "@n8n/api-types#lint", - "@n8n/config#lint", - "@n8n/decorators#lint", - "@n8n/constants#lint", - "@n8n/backend-common#lint", - "@n8n/backend-test-utils#lint", - "@n8n/db#lint", - "@n8n/di#lint", - "@n8n/client-oauth2#lint", - "@n8n/imap#lint", - "@n8n/permissions#lint", - "@n8n/task-runner#lint", - "n8n-workflow#lint", - "n8n-core#lint", - "n8n-node-dev#lint", - "n8n#lint" - ] - }, - "lint:frontend": { - "dependsOn": [ - "@n8n/eslint-config#build", - "^build", - "@n8n/rest-api-client#lint", - "@n8n/api-types#lint", - "@n8n/constants#lint", - "@n8n/i18n#lint", - "@n8n/permissions#lint", - "@n8n/stores#lint", - "@n8n/utils#lint", - "@n8n/chat#lint", - "@n8n/codemirror-lang#lint", - "@n8n/storybook#lint", - "n8n-cypress#lint", - "@n8n/composables#build", - "@n8n/design-system#lint", - "n8n-editor-ui#lint" - ] - }, - "lint:nodes": { - "dependsOn": [ - "@n8n/eslint-config#build", - "^build", - "n8n-nodes-base#lint", - "@n8n/n8n-nodes-langchain#lint", - "@n8n/json-schema-to-zod#lint" - ] - }, - "lint:testing": { - "dependsOn": [ - "@n8n/eslint-config#build", - "^build", - "n8n-playwright#lint", - "n8n-containers#lint" - ] - }, "lint": { "dependsOn": ["^build", "@n8n/eslint-config#build"] }, - "lintfix": {}, - "test:backend": { - "dependsOn": [ - "@n8n/api-types#test", - "@n8n/config#test", - "@n8n/decorators#test", - "@n8n/db#test", - "@n8n/di#test", - "@n8n/client-oauth2#test", - "@n8n/imap#test", - "@n8n/permissions#test", - "@n8n/task-runner#test", - "n8n-workflow#test", - "n8n-core#test", - "n8n#test" - ], - "outputs": ["coverage/**", "junit.xml", "cobertura-coverage.xml"], - "inputs": ["jest.config.*", "package.json", "pnpm-lock.yaml"] - }, - "test:frontend": { - "dependsOn": [ - "@n8n/rest-api-client#test", - "@n8n/api-types#test", - "@n8n/constants#test", - "@n8n/i18n#test", - "@n8n/permissions#test", - "@n8n/stores#test", - "@n8n/utils#test", - "@n8n/chat#test", - "@n8n/codemirror-lang#test", - "@n8n/composables#build", - "@n8n/design-system#test", - "n8n-editor-ui#test" - ], - "outputs": ["coverage/**", "junit.xml", "cobertura-coverage.xml"], - "inputs": ["jest.config.*", "package.json", "pnpm-lock.yaml"] - }, - "test:nodes": { - "dependsOn": [ - "n8n-nodes-base#test", - "@n8n/n8n-nodes-langchain#test", - "@n8n/json-schema-to-zod#test" - ], - "outputs": ["coverage/**", "junit.xml", "cobertura-coverage.xml"], - "inputs": ["jest.config.*", "package.json", "pnpm-lock.yaml"] - }, + "lint:fix": {}, "test": { - "outputs": ["coverage/**", "junit.xml", "cobertura-coverage.xml"] + "dependsOn": ["^build", "build"], + "outputs": ["coverage/**", "*.xml"] }, - "watch": { - "cache": false, - "persistent": true - }, - "dev": { - "cache": false, - "persistent": true + "watch": { "cache": false, "persistent": true }, + "dev": { "cache": false, "persistent": true }, + "build:playwright": { + "dependsOn": ["install-browsers:ci", "build"] }, "install-browsers:ci": { "cache": true,