mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 01:26:44 +00:00
ci: Enable Playwright tests in PRs (#17238)
This commit is contained in:
42
.github/actions/setup-nodejs-blacksmith/action.yml
vendored
Normal file
42
.github/actions/setup-nodejs-blacksmith/action.yml
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
name: 'Blacksmith Node.js Build Setup'
|
||||
description: 'Configures Node.js with pnpm, installs dependencies, enables Turborepo caching, (optional) sets up Docker layer caching, and builds the project or an optional command.'
|
||||
|
||||
inputs:
|
||||
node-version:
|
||||
description: 'Node.js version to use. Uses latest 22.x by default.'
|
||||
required: false
|
||||
default: '22.x'
|
||||
enable-docker-cache:
|
||||
description: 'Whether to set up Blacksmith Buildx for Docker layer caching.'
|
||||
required: false
|
||||
default: 'false'
|
||||
type: boolean
|
||||
build-command:
|
||||
description: 'Command to execute for building the project or an optional command. Leave empty to skip build step.'
|
||||
required: false
|
||||
default: 'pnpm build'
|
||||
type: string
|
||||
|
||||
runs:
|
||||
using: 'composite'
|
||||
steps:
|
||||
- name: Setup Node.js
|
||||
uses: useblacksmith/setup-node@65c6ca86fdeb0ab3d85e78f57e4f6a7e4780b391 # v5.0.4
|
||||
with:
|
||||
node-version: ${{ inputs.node-version }}
|
||||
|
||||
- name: Setup pnpm and Install Dependencies
|
||||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.0.0
|
||||
with:
|
||||
run_install: true
|
||||
|
||||
- name: Configure Turborepo Cache
|
||||
uses: useblacksmith/caching-for-turbo@bafb57e7ebdbf1185762286ec94d24648cd3938a # v1
|
||||
|
||||
- name: Setup Blacksmith Buildx for Docker Cache
|
||||
if: ${{ inputs.enable-docker-cache == 'true' }}
|
||||
uses: useblacksmith/build-push-action@574eb0ee0b59c6a687ace24192f0727dfb65d6d7 # v1.2.0
|
||||
|
||||
- name: Build Project
|
||||
run: ${{ inputs.build-command }}
|
||||
shell: bash
|
||||
167
.github/workflows/e2e-reusable.yml
vendored
167
.github/workflows/e2e-reusable.yml
vendored
@@ -40,81 +40,18 @@ on:
|
||||
CYPRESS_RECORD_KEY:
|
||||
description: 'Cypress record key.'
|
||||
required: true
|
||||
outputs:
|
||||
tests_passed:
|
||||
description: 'True if all E2E tests passed, otherwise false'
|
||||
value: ${{ jobs.check_testing_matrix.outputs.all_tests_passed }}
|
||||
CURRENTS_RECORD_KEY:
|
||||
description: 'Currents record key.'
|
||||
required: true
|
||||
|
||||
env:
|
||||
NODE_OPTIONS: --max-old-space-size=4096
|
||||
|
||||
jobs:
|
||||
# single job that generates and outputs a common id
|
||||
prepare:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
uuid: ${{ steps.uuid.outputs.value }}
|
||||
steps:
|
||||
- name: Generate unique ID 💎
|
||||
id: uuid
|
||||
# take the current commit + timestamp together
|
||||
# the typical value would be something like
|
||||
# "sha-5d3fe...35d3-time-1620841214"
|
||||
run: echo "value=sha-$GITHUB_SHA-time-$(date +"%s")" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Calculate Git Ref 🤔
|
||||
id: calculate_ref
|
||||
run: |
|
||||
if [ -n "${{ inputs.pr_number }}" ]; then
|
||||
echo "value=refs/pull/${{ inputs.pr_number }}/head" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "value=${{ inputs.branch }}" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
install:
|
||||
runs-on: blacksmith-4vcpu-ubuntu-2204
|
||||
needs: ['prepare']
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
ref: ${{ steps.calculate_ref.outputs.value }}
|
||||
|
||||
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.0.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
|
||||
with:
|
||||
path: |
|
||||
/home/runner/.cache/Cypress
|
||||
/github/home/.pnpm-store
|
||||
./packages/**/dist
|
||||
key: ${{ github.sha }}-ui
|
||||
|
||||
- name: Install dependencies
|
||||
if: steps.cache-build-artifacts.outputs.cache-hit != 'true'
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
- name: Cypress build
|
||||
if: steps.cache-build-artifacts.outputs.cache-hit != 'true'
|
||||
uses: cypress-io/github-action@be1bab96b388bbd9ce3887e397d373c8557e15af # v6.9.2
|
||||
with:
|
||||
# Disable running of tests within install job
|
||||
runTests: false
|
||||
install: false
|
||||
build: pnpm build
|
||||
|
||||
- name: Cypress install
|
||||
if: steps.cache-build-artifacts.outputs.cache-hit != 'true'
|
||||
working-directory: cypress
|
||||
run: pnpm cypress:install
|
||||
|
||||
testing:
|
||||
runs-on: blacksmith-2vcpu-ubuntu-2204
|
||||
needs: ['prepare', 'install']
|
||||
outputs:
|
||||
dashboardUrl: ${{ steps.cypress.outputs.dashboardUrl }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -123,31 +60,15 @@ jobs:
|
||||
containers: ${{ fromJSON( inputs.spec == 'e2e/*' && inputs.containers || '[1]' ) }}
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
ref: ${{ steps.calculate_ref.outputs.value }}
|
||||
- name: Set up and build
|
||||
uses: ./.github/actions/setup-nodejs-blacksmith
|
||||
|
||||
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.0.0
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
with:
|
||||
node-version: 22.x
|
||||
cache: 'pnpm'
|
||||
|
||||
- name: Restore cached pnpm modules
|
||||
id: cache-build-artifacts
|
||||
uses: useblacksmith/cache@c5fe29eb0efdf1cf4186b9f7fcbbcbc0cf025662 # v5
|
||||
with:
|
||||
path: |
|
||||
/home/runner/.cache/Cypress
|
||||
/github/home/.pnpm-store
|
||||
./packages/**/dist
|
||||
key: ${{ github.sha }}-ui
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
- name: Install Cypress
|
||||
working-directory: cypress
|
||||
run: pnpm cypress:install
|
||||
|
||||
- name: Cypress run
|
||||
id: cypress
|
||||
uses: cypress-io/github-action@be1bab96b388bbd9ce3887e397d373c8557e15af # v6.9.2
|
||||
with:
|
||||
working-directory: cypress
|
||||
@@ -159,7 +80,7 @@ jobs:
|
||||
parallel: ${{ fromJSON( inputs.spec == 'e2e/*' && inputs.parallel || false ) }}
|
||||
# We have to provide custom ci-build-id key to make sure that this workflow could be run multiple times
|
||||
# in the same parent workflow
|
||||
ci-build-id: ${{ needs.prepare.outputs.uuid }}
|
||||
ci-build-id: ${{ github.run_id }}-${{ github.run_attempt }}
|
||||
spec: '${{ inputs.spec }}'
|
||||
env:
|
||||
NODE_OPTIONS: --dns-result-order=ipv4first
|
||||
@@ -169,21 +90,49 @@ jobs:
|
||||
COMMIT_INFO_MESSAGE: 🌳 ${{ inputs.branch }} 🤖 ${{ inputs.user }} 🗃️ ${{ inputs.spec }}
|
||||
SHELL: /bin/sh
|
||||
|
||||
# Check if all tests passed and set the output variable
|
||||
check_testing_matrix:
|
||||
- name: Upload test results artifact
|
||||
if: always()
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
with:
|
||||
name: test-results-${{ matrix.containers }}
|
||||
path: cypress/test-results-*.xml
|
||||
|
||||
upload-to-currents:
|
||||
needs: testing
|
||||
if: always()
|
||||
runs-on: ubuntu-latest
|
||||
needs: [testing]
|
||||
outputs:
|
||||
all_tests_passed: ${{ steps.all_tests_passed.outputs.result }}
|
||||
steps:
|
||||
- name: Check all tests passed
|
||||
id: all_tests_passed
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Download all test results
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
path: test-results
|
||||
|
||||
- name: Merge and upload to Currents
|
||||
run: |
|
||||
success=true
|
||||
for status in ${{ needs.testing.result }}; do
|
||||
if [ $status != "success" ]; then
|
||||
success=false
|
||||
break
|
||||
fi
|
||||
done
|
||||
echo "::set-output name=result::$success"
|
||||
npm install -g @currents/cmd junit-report-merger
|
||||
# Merge all XML files, so Currents can show a single view for Cypress
|
||||
jrm combined-results.xml "test-results/**/test-results-*.xml"
|
||||
|
||||
- name: Upload merged XML as artifact
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
with:
|
||||
name: merged-junit-results
|
||||
path: combined-results.xml
|
||||
|
||||
- name: Convert and upload to Currents
|
||||
run: |
|
||||
currents convert \
|
||||
--input-format=junit \
|
||||
--input-file=combined-results.xml \
|
||||
--output-dir=.currents \
|
||||
--framework=node \
|
||||
--framework-version=cypress-14.4.0
|
||||
|
||||
currents upload \
|
||||
--project-id=I0yzoc \
|
||||
--key=${{ secrets.CURRENTS_RECORD_KEY }} \
|
||||
--ci-build-id=n8n-io/n8n-${{ github.run_id }}-${{ github.run_attempt }} \
|
||||
--report-dir=.currents \
|
||||
--tag=cypress
|
||||
|
||||
59
.github/workflows/e2e-tests-pr.yml
vendored
59
.github/workflows/e2e-tests-pr.yml
vendored
@@ -24,56 +24,21 @@ jobs:
|
||||
with:
|
||||
pr_number: ${{ github.event.pull_request.number }}
|
||||
user: ${{ github.event.pull_request.user.login || 'PR User' }}
|
||||
secrets:
|
||||
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
||||
secrets: inherit
|
||||
|
||||
run-playwright-tests:
|
||||
name: Playwright
|
||||
uses: ./.github/workflows/playwright-test-reusable.yml
|
||||
needs: [eligibility_check]
|
||||
if: needs.eligibility_check.outputs.should_run == 'true'
|
||||
secrets: inherit
|
||||
|
||||
post-e2e-tests:
|
||||
name: E2E - Checks
|
||||
runs-on: ubuntu-latest
|
||||
needs: [eligibility_check, run-e2e-tests]
|
||||
needs: [eligibility_check, run-e2e-tests, run-playwright-tests]
|
||||
if: always() && needs.eligibility_check.result != 'skipped'
|
||||
steps:
|
||||
- name: Determine Outcome and Comment Message
|
||||
id: determine_outcome
|
||||
run: |
|
||||
JOB_OUTCOME="success"
|
||||
COMMENT_BODY=""
|
||||
SHOULD_POST_COMMENT="false"
|
||||
|
||||
if [[ "${{ needs.eligibility_check.outputs.should_run }}" == "false" ]]; then
|
||||
COMMENT_BODY="ℹ️ E2E tests were not run for this PR based on the eligibility criteria."
|
||||
SHOULD_POST_COMMENT="true"
|
||||
JOB_OUTCOME="success"
|
||||
elif [[ "${{ needs.run-e2e-tests.result }}" == "success" ]]; then
|
||||
COMMENT_BODY=":white_check_mark: All Cypress E2E specs passed"
|
||||
SHOULD_POST_COMMENT="true"
|
||||
JOB_OUTCOME="success"
|
||||
elif [[ "${{ needs.run-e2e-tests.result }}" == "failure" ]]; then
|
||||
COMMENT_BODY=":warning: Some Cypress E2E specs are failing, please fix them before merging"
|
||||
SHOULD_POST_COMMENT="true"
|
||||
JOB_OUTCOME="failure"
|
||||
else
|
||||
COMMENT_BODY="ℹ️ E2E tests were scheduled but did not complete as expected (Result: ${{ needs.run-e2e-tests.result }})."
|
||||
SHOULD_POST_COMMENT="true"
|
||||
JOB_OUTCOME="failure"
|
||||
fi
|
||||
|
||||
echo "comment_body=$COMMENT_BODY" >> $GITHUB_OUTPUT
|
||||
echo "should_post_comment=$SHOULD_POST_COMMENT" >> $GITHUB_OUTPUT
|
||||
echo "job_outcome=$JOB_OUTCOME" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Create or Update PR Comment
|
||||
if: steps.determine_outcome.outputs.should_post_comment == 'true' && needs.eligibility_check.outputs.should_run == 'true'
|
||||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043
|
||||
with:
|
||||
issue-number: ${{ github.event.pull_request.number }}
|
||||
body: ${{ steps.determine_outcome.outputs.comment_body }}
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Finalize Job Status
|
||||
run: |
|
||||
if [[ "${{ steps.determine_outcome.outputs.job_outcome }}" == "failure" ]]; then
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
- name: Fail if tests failed
|
||||
if: needs.run-e2e-tests.result == 'failure' || needs.run-playwright-tests.result == 'failure'
|
||||
run: exit 1
|
||||
|
||||
10
.github/workflows/e2e-tests.yml
vendored
10
.github/workflows/e2e-tests.yml
vendored
@@ -48,13 +48,17 @@ jobs:
|
||||
branch: ${{ github.event.inputs.branch || 'master' }}
|
||||
user: ${{ github.event.inputs.user || 'PR User' }}
|
||||
spec: ${{ github.event.inputs.spec || 'e2e/*' }}
|
||||
secrets:
|
||||
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
||||
secrets: inherit
|
||||
|
||||
run-playwright-tests:
|
||||
name: Playwright
|
||||
uses: ./.github/workflows/playwright-test-reusable.yml
|
||||
secrets: inherit
|
||||
|
||||
calls-success-url-notify:
|
||||
name: Calls success URL and notifies
|
||||
runs-on: ubuntu-latest
|
||||
needs: [run-e2e-tests]
|
||||
needs: [run-e2e-tests, run-playwright-tests]
|
||||
if: ${{ github.event.inputs.success-url != '' }}
|
||||
steps:
|
||||
- name: Notify Slack on failure
|
||||
|
||||
13
.github/workflows/playwright-test-docker-build.yml
vendored
Normal file
13
.github/workflows/playwright-test-docker-build.yml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
name: Run Playwright Tests (Docker Build)
|
||||
# This workflow is used to run Playwright tests in a Docker container built from the current branch
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-and-test:
|
||||
uses: ./.github/workflows/playwright-test-reusable.yml
|
||||
with:
|
||||
test-mode: docker-build
|
||||
secrets: inherit
|
||||
37
.github/workflows/playwright-test-docker-pull.yml
vendored
Normal file
37
.github/workflows/playwright-test-docker-pull.yml
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
name: Run Playwright Tests (Docker Pull)
|
||||
# This workflow is used to run Playwright tests in a Docker container pulled from the registry
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
shards:
|
||||
description: 'Shards for parallel execution'
|
||||
required: false
|
||||
default: '[1]'
|
||||
type: string
|
||||
image:
|
||||
description: 'Image to use'
|
||||
required: false
|
||||
default: 'n8nio/n8n:nightly'
|
||||
type: string
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
shards:
|
||||
description: 'Shards for parallel execution'
|
||||
required: false
|
||||
default: '[1]'
|
||||
type: string
|
||||
image:
|
||||
description: 'Image to use'
|
||||
required: false
|
||||
default: 'n8nio/n8n:nightly'
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
build-and-test:
|
||||
uses: ./.github/workflows/playwright-test-reusable.yml
|
||||
with:
|
||||
test-mode: docker-pull
|
||||
shards: ${{ inputs.shards }}
|
||||
docker-image: ${{ inputs.image }}
|
||||
secrets: inherit
|
||||
84
.github/workflows/playwright-test-reusable.yml
vendored
Normal file
84
.github/workflows/playwright-test-reusable.yml
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
name: Playwright Tests - Reusable
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
test-mode:
|
||||
description: 'Test mode: local (pnpm start from local), docker-build, or docker-pull'
|
||||
required: false
|
||||
default: 'local'
|
||||
type: string
|
||||
shards:
|
||||
description: 'Shards for parallel execution'
|
||||
required: false
|
||||
default: '[1]'
|
||||
type: string
|
||||
docker-image:
|
||||
description: 'Docker image to use (for docker-pull mode)'
|
||||
required: false
|
||||
default: 'n8nio/n8n:nightly'
|
||||
type: string
|
||||
|
||||
secrets:
|
||||
CURRENTS_RECORD_KEY:
|
||||
required: true
|
||||
|
||||
env:
|
||||
PLAYWRIGHT_BROWSERS_PATH: packages/testing/playwright/ms-playwright-cache
|
||||
NODE_OPTIONS: --max-old-space-size=4096
|
||||
# Disable Ryuk to avoid issues with Docker since it needs privileged access, containers are cleaned on teardown anyway
|
||||
TESTCONTAINERS_RYUK_DISABLED: true
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: blacksmith-2vcpu-ubuntu-2204
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
shard: ${{ fromJSON(inputs.shards || '[1]') }}
|
||||
name: Test (Shard ${{ matrix.shard }}/${{ strategy.job-total }})
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Setup Environment
|
||||
uses: ./.github/actions/setup-nodejs-blacksmith
|
||||
with:
|
||||
build-command: ${{ inputs.test-mode == 'docker-build' && 'pnpm build:docker' || 'pnpm turbo build:playwright' }}
|
||||
enable-docker-cache: ${{ inputs.test-mode != 'local' }}
|
||||
|
||||
- name: Install Browsers (Docker Build)
|
||||
if: inputs.test-mode == 'docker-build'
|
||||
run: pnpm turbo install-browsers:ci
|
||||
|
||||
- name: Start Local Server
|
||||
if: inputs.test-mode == 'local'
|
||||
env:
|
||||
E2E_TESTS: true
|
||||
run: |
|
||||
pnpm start &
|
||||
npx wait-on http://localhost:5678 --timeout 15000
|
||||
|
||||
- name: Run Tests (Local)
|
||||
if: inputs.test-mode == 'local'
|
||||
run: |
|
||||
pnpm --filter=n8n-playwright test \
|
||||
--shard=${{ matrix.shard }}/${{ strategy.job-total }} \
|
||||
--workers=2
|
||||
env:
|
||||
N8N_BASE_URL: http://localhost:5678
|
||||
RESET_E2E_DB: true
|
||||
CURRENTS_RECORD_KEY: ${{ secrets.CURRENTS_RECORD_KEY }}
|
||||
|
||||
- name: Run Tests (Docker)
|
||||
if: inputs.test-mode != 'local'
|
||||
run: |
|
||||
pnpm --filter=n8n-playwright run test:standard \
|
||||
--shard=${{ matrix.shard }}/${{ strategy.job-total }} \
|
||||
--workers=2
|
||||
env:
|
||||
N8N_DOCKER_IMAGE: ${{ inputs.test-mode == 'docker-build' && 'n8nio/n8n:local' || inputs.docker-image }}
|
||||
CURRENTS_RECORD_KEY: ${{ secrets.CURRENTS_RECORD_KEY }}
|
||||
@@ -31,4 +31,8 @@ module.exports = defineConfig({
|
||||
return config;
|
||||
},
|
||||
},
|
||||
reporter: 'mocha-junit-reporter',
|
||||
reporterOptions: {
|
||||
mochaFile: 'test-results-[hash].xml',
|
||||
},
|
||||
});
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
"@n8n/api-types": "workspace:*",
|
||||
"@types/lodash": "catalog:",
|
||||
"eslint-plugin-cypress": "^4.3.0",
|
||||
"mocha-junit-reporter": "^2.2.1",
|
||||
"n8n-workflow": "workspace:*"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import type { CurrentsConfig } from '@currents/playwright';
|
||||
|
||||
export const config: CurrentsConfig = {
|
||||
const config: CurrentsConfig = {
|
||||
recordKey: process.env.CURRENTS_RECORD_KEY ?? '',
|
||||
projectId: process.env.CURRENTS_PROJECT_ID ?? 'I0yzoc',
|
||||
};
|
||||
|
||||
// eslint-disable-next-line import-x/no-default-export
|
||||
export default config;
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
import { request } from '@playwright/test';
|
||||
|
||||
import { ApiHelpers } from './services/api-helper';
|
||||
import { createN8NStack } from 'n8n-containers/n8n-test-container-creation';
|
||||
|
||||
async function pullImagesForCI() {
|
||||
console.log(`🔄 Pulling images for ${process.env.N8N_DOCKER_IMAGE}...`);
|
||||
const stack = await createN8NStack({
|
||||
postgres: true,
|
||||
});
|
||||
|
||||
console.log(`🔄 Images pulled for ${process.env.N8N_DOCKER_IMAGE}...`);
|
||||
|
||||
await stack.stop();
|
||||
}
|
||||
|
||||
async function globalSetup() {
|
||||
console.log('🚀 Starting global setup...');
|
||||
@@ -9,6 +21,9 @@ async function globalSetup() {
|
||||
const n8nBaseUrl = process.env.N8N_BASE_URL;
|
||||
if (!n8nBaseUrl) {
|
||||
console.log('⚠️ N8N_BASE_URL environment variable is not set, skipping database reset');
|
||||
if (process.env.CI) {
|
||||
await pullImagesForCI();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
/* eslint-disable import-x/no-default-export */
|
||||
import { currentsReporter } from '@currents/playwright';
|
||||
import type { Project } from '@playwright/test';
|
||||
import { defineConfig } from '@playwright/test';
|
||||
|
||||
import currentsConfig from './currents.config';
|
||||
|
||||
/*
|
||||
* Mode-based Test Configuration
|
||||
*
|
||||
@@ -105,6 +108,7 @@ export default defineConfig({
|
||||
['html', { open: 'never' }],
|
||||
['json', { outputFile: 'test-results.json' }],
|
||||
['blob'],
|
||||
currentsReporter(currentsConfig),
|
||||
]
|
||||
: [['html']],
|
||||
|
||||
|
||||
255
pnpm-lock.yaml
generated
255
pnpm-lock.yaml
generated
@@ -375,6 +375,9 @@ importers:
|
||||
eslint-plugin-cypress:
|
||||
specifier: ^4.3.0
|
||||
version: 4.3.0(eslint@9.29.0(jiti@1.21.7))
|
||||
mocha-junit-reporter:
|
||||
specifier: ^2.2.1
|
||||
version: 2.2.1(mocha@11.7.1)
|
||||
n8n-workflow:
|
||||
specifier: workspace:*
|
||||
version: link:../packages/workflow
|
||||
@@ -4328,12 +4331,6 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@eslint-community/eslint-utils@4.4.0':
|
||||
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
|
||||
|
||||
'@eslint-community/eslint-utils@4.7.0':
|
||||
resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
@@ -6889,9 +6886,6 @@ packages:
|
||||
'@types/eslint@9.6.1':
|
||||
resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
|
||||
|
||||
'@types/estree@1.0.6':
|
||||
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
|
||||
|
||||
'@types/estree@1.0.8':
|
||||
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
|
||||
|
||||
@@ -8228,6 +8222,9 @@ packages:
|
||||
resolution: {integrity: sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg==}
|
||||
engines: {'0': node}
|
||||
|
||||
browser-stdout@1.3.1:
|
||||
resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
|
||||
|
||||
browserslist-to-esbuild@2.1.1:
|
||||
resolution: {integrity: sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -9097,6 +9094,10 @@ packages:
|
||||
resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
decamelize@4.0.0:
|
||||
resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
decimal.js@10.4.3:
|
||||
resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
|
||||
|
||||
@@ -9199,6 +9200,10 @@ packages:
|
||||
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
|
||||
engines: {node: '>=0.3.1'}
|
||||
|
||||
diff@7.0.0:
|
||||
resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==}
|
||||
engines: {node: '>=0.3.1'}
|
||||
|
||||
dingbat-to-unicode@1.0.1:
|
||||
resolution: {integrity: sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w==}
|
||||
|
||||
@@ -9667,10 +9672,6 @@ packages:
|
||||
engines: {node: '>=4'}
|
||||
hasBin: true
|
||||
|
||||
esquery@1.5.0:
|
||||
resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
|
||||
engines: {node: '>=0.10'}
|
||||
|
||||
esquery@1.6.0:
|
||||
resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
|
||||
engines: {node: '>=0.10'}
|
||||
@@ -10475,10 +10476,6 @@ packages:
|
||||
resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
|
||||
engines: {node: '>= 6'}
|
||||
|
||||
http-proxy-agent@7.0.0:
|
||||
resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==}
|
||||
engines: {node: '>= 14'}
|
||||
|
||||
http-proxy-agent@7.0.2:
|
||||
resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
|
||||
engines: {node: '>= 14'}
|
||||
@@ -10805,6 +10802,10 @@ packages:
|
||||
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
is-plain-obj@2.1.0:
|
||||
resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
is-plain-obj@4.1.0:
|
||||
resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
|
||||
engines: {node: '>=12'}
|
||||
@@ -12098,8 +12099,10 @@ packages:
|
||||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
|
||||
mlly@1.7.1:
|
||||
resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==}
|
||||
mkdirp@3.0.1:
|
||||
resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==}
|
||||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
|
||||
mlly@1.7.4:
|
||||
resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==}
|
||||
@@ -12133,6 +12136,16 @@ packages:
|
||||
mobx@6.12.0:
|
||||
resolution: {integrity: sha512-Mn6CN6meXEnMa0a5u6a5+RKrqRedHBhZGd15AWLk9O6uFY4KYHzImdt8JI8WODo1bjTSRnwXhJox+FCUZhCKCQ==}
|
||||
|
||||
mocha-junit-reporter@2.2.1:
|
||||
resolution: {integrity: sha512-iDn2tlKHn8Vh8o4nCzcUVW4q7iXp7cC4EB78N0cDHIobLymyHNwe0XG8HEHHjc3hJlXm0Vy6zcrxaIhnI2fWmw==}
|
||||
peerDependencies:
|
||||
mocha: '>=2.2.5'
|
||||
|
||||
mocha@11.7.1:
|
||||
resolution: {integrity: sha512-5EK+Cty6KheMS/YLPPMJC64g5V61gIR25KsRItHw6x4hEKT6Njp1n9LOlH4gpevuwMVS66SXaBBpg+RWZkza4A==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
hasBin: true
|
||||
|
||||
module-details-from-path@1.0.3:
|
||||
resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==}
|
||||
|
||||
@@ -12931,9 +12944,6 @@ packages:
|
||||
resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
pkg-types@1.1.3:
|
||||
resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==}
|
||||
|
||||
pkg-types@1.3.1:
|
||||
resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
|
||||
|
||||
@@ -14779,9 +14789,6 @@ packages:
|
||||
uc.micro@2.1.0:
|
||||
resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
|
||||
|
||||
ufo@1.5.4:
|
||||
resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==}
|
||||
|
||||
ufo@1.6.1:
|
||||
resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
|
||||
|
||||
@@ -15455,6 +15462,9 @@ packages:
|
||||
worker-timers@7.1.8:
|
||||
resolution: {integrity: sha512-R54psRKYVLuzff7c1OTFcq/4Hue5Vlz4bFtNEIarpSiCYhpifHU3aIQI29S84o1j87ePCYqbmEJPqwBTf+3sfw==}
|
||||
|
||||
workerpool@9.3.3:
|
||||
resolution: {integrity: sha512-slxCaKbYjEdFT/o2rH9xS1hf4uRDch1w7Uo+apxhZ+sf/1d9e0ZVkn42kPNGP2dgjIx6YFvSevj0zHvbWe2jdw==}
|
||||
|
||||
wrap-ansi@6.2.0:
|
||||
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -15602,6 +15612,10 @@ packages:
|
||||
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
yargs-unparser@2.0.0:
|
||||
resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
yargs@16.2.0:
|
||||
resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -16591,7 +16605,7 @@ snapshots:
|
||||
|
||||
'@azure/abort-controller@1.1.0':
|
||||
dependencies:
|
||||
tslib: 2.6.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@azure/abort-controller@2.0.0':
|
||||
dependencies:
|
||||
@@ -16611,7 +16625,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@azure/abort-controller': 2.1.2
|
||||
'@azure/core-util': 1.12.0
|
||||
tslib: 2.6.2
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@@ -16623,7 +16637,7 @@ snapshots:
|
||||
'@azure/core-tracing': 1.0.1
|
||||
'@azure/core-util': 1.7.0
|
||||
'@azure/logger': 1.0.3
|
||||
tslib: 2.6.2
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@@ -16661,7 +16675,7 @@ snapshots:
|
||||
'@azure/core-util': 1.12.0
|
||||
'@azure/logger': 1.0.3
|
||||
'@typespec/ts-http-runtime': 0.2.2
|
||||
tslib: 2.6.2
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@@ -16686,13 +16700,13 @@ snapshots:
|
||||
|
||||
'@azure/core-tracing@1.2.0':
|
||||
dependencies:
|
||||
tslib: 2.6.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@azure/core-util@1.12.0':
|
||||
dependencies:
|
||||
'@azure/abort-controller': 2.1.2
|
||||
'@typespec/ts-http-runtime': 0.2.2
|
||||
tslib: 2.6.2
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@@ -16759,7 +16773,7 @@ snapshots:
|
||||
|
||||
'@azure/logger@1.0.3':
|
||||
dependencies:
|
||||
tslib: 2.6.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@azure/msal-browser@3.19.0':
|
||||
dependencies:
|
||||
@@ -16810,15 +16824,15 @@ snapshots:
|
||||
'@babel/core@7.26.10':
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.3.0
|
||||
'@babel/code-frame': 7.26.2
|
||||
'@babel/code-frame': 7.27.1
|
||||
'@babel/generator': 7.26.10
|
||||
'@babel/helper-compilation-targets': 7.26.5
|
||||
'@babel/helper-compilation-targets': 7.27.2
|
||||
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10)
|
||||
'@babel/helpers': 7.26.10
|
||||
'@babel/parser': 7.26.10
|
||||
'@babel/parser': 7.27.5
|
||||
'@babel/template': 7.26.9
|
||||
'@babel/traverse': 7.26.10
|
||||
'@babel/types': 7.26.10
|
||||
'@babel/types': 7.27.6
|
||||
convert-source-map: 2.0.0
|
||||
debug: 4.4.1(supports-color@8.1.1)
|
||||
gensync: 1.0.0-beta.2
|
||||
@@ -16851,7 +16865,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@babel/compat-data': 7.27.5
|
||||
'@babel/helper-validator-option': 7.27.1
|
||||
browserslist: 4.24.4
|
||||
browserslist: 4.25.0
|
||||
lru-cache: 5.1.1
|
||||
semver: 7.7.2
|
||||
|
||||
@@ -17510,13 +17524,13 @@ snapshots:
|
||||
|
||||
'@babel/template@7.26.9':
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.26.2
|
||||
'@babel/parser': 7.26.10
|
||||
'@babel/types': 7.26.10
|
||||
'@babel/code-frame': 7.27.1
|
||||
'@babel/parser': 7.27.5
|
||||
'@babel/types': 7.27.6
|
||||
|
||||
'@babel/traverse@7.26.10':
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.26.2
|
||||
'@babel/code-frame': 7.27.1
|
||||
'@babel/generator': 7.26.10
|
||||
'@babel/parser': 7.27.5
|
||||
'@babel/template': 7.26.9
|
||||
@@ -17756,7 +17770,7 @@ snapshots:
|
||||
'@currents/commit-info': 1.0.1-beta.0
|
||||
async-retry: 1.3.3
|
||||
axios: 1.10.0(debug@4.4.1)
|
||||
axios-retry: 4.5.0(axios@1.10.0)
|
||||
axios-retry: 4.5.0(axios@1.10.0(debug@4.4.1))
|
||||
c12: 1.11.2(magicast@0.3.5)
|
||||
chalk: 4.1.2
|
||||
commander: 12.1.0
|
||||
@@ -17945,11 +17959,6 @@ snapshots:
|
||||
'@esbuild/win32-x64@0.24.2':
|
||||
optional: true
|
||||
|
||||
'@eslint-community/eslint-utils@4.4.0(eslint@9.29.0(jiti@1.21.7))':
|
||||
dependencies:
|
||||
eslint: 9.29.0(jiti@1.21.7)
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@eslint-community/eslint-utils@4.7.0(eslint@9.29.0(jiti@1.21.7))':
|
||||
dependencies:
|
||||
eslint: 9.29.0(jiti@1.21.7)
|
||||
@@ -18206,7 +18215,7 @@ snapshots:
|
||||
debug: 4.4.1(supports-color@8.1.1)
|
||||
kolorist: 1.8.0
|
||||
local-pkg: 0.5.0
|
||||
mlly: 1.7.1
|
||||
mlly: 1.7.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@@ -20798,7 +20807,7 @@ snapshots:
|
||||
|
||||
'@types/asn1@0.2.0':
|
||||
dependencies:
|
||||
'@types/node': 20.17.57
|
||||
'@types/node': 20.19.1
|
||||
|
||||
'@types/aws4@1.11.2':
|
||||
dependencies:
|
||||
@@ -20884,8 +20893,6 @@ snapshots:
|
||||
'@types/estree': 1.0.8
|
||||
'@types/json-schema': 7.0.15
|
||||
|
||||
'@types/estree@1.0.6': {}
|
||||
|
||||
'@types/estree@1.0.8': {}
|
||||
|
||||
'@types/eventsource@1.1.9': {}
|
||||
@@ -20919,12 +20926,12 @@ snapshots:
|
||||
|
||||
'@types/ftp@0.3.33':
|
||||
dependencies:
|
||||
'@types/node': 20.17.57
|
||||
'@types/node': 20.19.1
|
||||
|
||||
'@types/glob@8.0.0':
|
||||
dependencies:
|
||||
'@types/minimatch': 5.1.2
|
||||
'@types/node': 20.17.57
|
||||
'@types/node': 20.19.1
|
||||
|
||||
'@types/gm@1.25.0':
|
||||
dependencies:
|
||||
@@ -20984,7 +20991,7 @@ snapshots:
|
||||
|
||||
'@types/jsonfile@6.1.4':
|
||||
dependencies:
|
||||
'@types/node': 20.17.57
|
||||
'@types/node': 20.19.1
|
||||
optional: true
|
||||
|
||||
'@types/jsonpath@0.2.0': {}
|
||||
@@ -21064,7 +21071,7 @@ snapshots:
|
||||
|
||||
'@types/node-fetch@2.6.12':
|
||||
dependencies:
|
||||
'@types/node': 20.17.57
|
||||
'@types/node': 20.19.1
|
||||
form-data: 4.0.2
|
||||
|
||||
'@types/node@20.17.57':
|
||||
@@ -21192,7 +21199,7 @@ snapshots:
|
||||
|
||||
'@types/ssh2@1.11.6':
|
||||
dependencies:
|
||||
'@types/node': 20.17.57
|
||||
'@types/node': 20.19.1
|
||||
|
||||
'@types/sshpk@1.17.4':
|
||||
dependencies:
|
||||
@@ -21230,7 +21237,7 @@ snapshots:
|
||||
|
||||
'@types/tedious@4.0.9':
|
||||
dependencies:
|
||||
'@types/node': 20.17.57
|
||||
'@types/node': 20.19.1
|
||||
|
||||
'@types/temp@0.9.4':
|
||||
dependencies:
|
||||
@@ -21238,7 +21245,7 @@ snapshots:
|
||||
|
||||
'@types/through@0.0.30':
|
||||
dependencies:
|
||||
'@types/node': 20.17.57
|
||||
'@types/node': 20.19.1
|
||||
|
||||
'@types/tough-cookie@4.0.2': {}
|
||||
|
||||
@@ -22278,16 +22285,29 @@ snapshots:
|
||||
|
||||
axe-core@4.7.2: {}
|
||||
|
||||
axios-retry@4.5.0(axios@1.10.0):
|
||||
axios-retry@4.5.0(axios@1.10.0(debug@4.4.1)):
|
||||
dependencies:
|
||||
axios: 1.10.0(debug@4.4.1)
|
||||
is-retry-allowed: 2.2.0
|
||||
|
||||
axios-retry@4.5.0(axios@1.10.0):
|
||||
dependencies:
|
||||
axios: 1.10.0
|
||||
is-retry-allowed: 2.2.0
|
||||
|
||||
axios-retry@4.5.0(axios@1.8.3):
|
||||
dependencies:
|
||||
axios: 1.8.3
|
||||
is-retry-allowed: 2.2.0
|
||||
|
||||
axios@1.10.0:
|
||||
dependencies:
|
||||
follow-redirects: 1.15.9(debug@4.3.6)
|
||||
form-data: 4.0.2
|
||||
proxy-from-env: 1.1.0
|
||||
transitivePeerDependencies:
|
||||
- debug
|
||||
|
||||
axios@1.10.0(debug@4.3.6):
|
||||
dependencies:
|
||||
follow-redirects: 1.15.9(debug@4.3.6)
|
||||
@@ -22509,6 +22529,8 @@ snapshots:
|
||||
|
||||
browser-request@0.3.3: {}
|
||||
|
||||
browser-stdout@1.3.1: {}
|
||||
|
||||
browserslist-to-esbuild@2.1.1(browserslist@4.24.4):
|
||||
dependencies:
|
||||
browserslist: 4.24.4
|
||||
@@ -22586,7 +22608,7 @@ snapshots:
|
||||
|
||||
bundlemon@3.1.0(typescript@5.8.3):
|
||||
dependencies:
|
||||
axios: 1.10.0(debug@4.4.1)
|
||||
axios: 1.10.0
|
||||
axios-retry: 4.5.0(axios@1.10.0)
|
||||
brotli-size: 4.0.0
|
||||
bundlemon-utils: 2.0.1
|
||||
@@ -23507,6 +23529,8 @@ snapshots:
|
||||
|
||||
decamelize@1.2.0: {}
|
||||
|
||||
decamelize@4.0.0: {}
|
||||
|
||||
decimal.js@10.4.3: {}
|
||||
|
||||
decko@1.2.0: {}
|
||||
@@ -23596,6 +23620,8 @@ snapshots:
|
||||
diff@4.0.2:
|
||||
optional: true
|
||||
|
||||
diff@7.0.0: {}
|
||||
|
||||
dingbat-to-unicode@1.0.1: {}
|
||||
|
||||
dir-glob@3.0.1:
|
||||
@@ -24074,7 +24100,7 @@ snapshots:
|
||||
|
||||
eslint-import-resolver-node@0.3.9:
|
||||
dependencies:
|
||||
debug: 3.2.7(supports-color@8.1.1)
|
||||
debug: 3.2.7(supports-color@5.5.0)
|
||||
is-core-module: 2.16.1
|
||||
resolve: 1.22.10
|
||||
transitivePeerDependencies:
|
||||
@@ -24098,7 +24124,7 @@ snapshots:
|
||||
|
||||
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.35.0(eslint@9.29.0(jiti@1.21.7))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.3)(eslint@9.29.0(jiti@1.21.7)):
|
||||
dependencies:
|
||||
debug: 3.2.7(supports-color@8.1.1)
|
||||
debug: 3.2.7(supports-color@5.5.0)
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 8.35.0(eslint@9.29.0(jiti@1.21.7))(typescript@5.8.3)
|
||||
eslint: 9.29.0(jiti@1.21.7)
|
||||
@@ -24137,7 +24163,7 @@ snapshots:
|
||||
array.prototype.findlastindex: 1.2.6
|
||||
array.prototype.flat: 1.3.3
|
||||
array.prototype.flatmap: 1.3.3
|
||||
debug: 3.2.7(supports-color@8.1.1)
|
||||
debug: 3.2.7(supports-color@5.5.0)
|
||||
doctrine: 2.1.0
|
||||
eslint: 9.29.0(jiti@1.21.7)
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
@@ -24235,7 +24261,7 @@ snapshots:
|
||||
|
||||
eslint@9.29.0(jiti@1.21.7):
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@9.29.0(jiti@1.21.7))
|
||||
'@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@1.21.7))
|
||||
'@eslint-community/regexpp': 4.12.1
|
||||
'@eslint/config-array': 0.20.1
|
||||
'@eslint/config-helpers': 0.2.3
|
||||
@@ -24246,7 +24272,7 @@ snapshots:
|
||||
'@humanfs/node': 0.16.6
|
||||
'@humanwhocodes/module-importer': 1.0.1
|
||||
'@humanwhocodes/retry': 0.4.3
|
||||
'@types/estree': 1.0.6
|
||||
'@types/estree': 1.0.8
|
||||
'@types/json-schema': 7.0.15
|
||||
ajv: 6.12.6
|
||||
chalk: 4.1.2
|
||||
@@ -24256,7 +24282,7 @@ snapshots:
|
||||
eslint-scope: 8.4.0
|
||||
eslint-visitor-keys: 4.2.1
|
||||
espree: 10.4.0
|
||||
esquery: 1.5.0
|
||||
esquery: 1.6.0
|
||||
esutils: 2.0.3
|
||||
fast-deep-equal: 3.1.3
|
||||
file-entry-cache: 8.0.0
|
||||
@@ -24289,10 +24315,6 @@ snapshots:
|
||||
|
||||
esprima@4.0.1: {}
|
||||
|
||||
esquery@1.5.0:
|
||||
dependencies:
|
||||
estraverse: 5.3.0
|
||||
|
||||
esquery@1.6.0:
|
||||
dependencies:
|
||||
estraverse: 5.3.0
|
||||
@@ -25067,7 +25089,7 @@ snapshots:
|
||||
array-parallel: 0.1.3
|
||||
array-series: 0.1.5
|
||||
cross-spawn: 7.0.6
|
||||
debug: 3.2.7(supports-color@8.1.1)
|
||||
debug: 3.2.7(supports-color@5.5.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@@ -25133,7 +25155,7 @@ snapshots:
|
||||
|
||||
groq-sdk@0.19.0(encoding@0.1.13):
|
||||
dependencies:
|
||||
'@types/node': 20.17.57
|
||||
'@types/node': 20.19.1
|
||||
'@types/node-fetch': 2.6.12
|
||||
abort-controller: 3.0.0
|
||||
agentkeepalive: 4.6.0
|
||||
@@ -25309,13 +25331,6 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
http-proxy-agent@7.0.0:
|
||||
dependencies:
|
||||
agent-base: 7.1.3
|
||||
debug: 4.4.1(supports-color@8.1.1)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
http-proxy-agent@7.0.2:
|
||||
dependencies:
|
||||
agent-base: 7.1.3
|
||||
@@ -25448,7 +25463,7 @@ snapshots:
|
||||
|
||||
infisical-node@1.3.0:
|
||||
dependencies:
|
||||
axios: 1.10.0(debug@4.4.1)
|
||||
axios: 1.10.0
|
||||
dotenv: 16.3.1
|
||||
tweetnacl: 1.0.3
|
||||
tweetnacl-util: 0.15.1
|
||||
@@ -25681,6 +25696,8 @@ snapshots:
|
||||
|
||||
is-path-inside@3.0.3: {}
|
||||
|
||||
is-plain-obj@2.1.0: {}
|
||||
|
||||
is-plain-obj@4.1.0: {}
|
||||
|
||||
is-plain-object@5.0.0: {}
|
||||
@@ -26434,7 +26451,7 @@ snapshots:
|
||||
decimal.js: 10.4.3
|
||||
form-data: 4.0.2
|
||||
html-encoding-sniffer: 4.0.0
|
||||
http-proxy-agent: 7.0.0
|
||||
http-proxy-agent: 7.0.2
|
||||
https-proxy-agent: 7.0.6
|
||||
is-potential-custom-element-name: 1.0.1
|
||||
nwsapi: 2.2.7
|
||||
@@ -26610,7 +26627,7 @@ snapshots:
|
||||
'@langchain/groq': 0.2.3(@langchain/core@0.3.61(openai@5.8.1(ws@8.18.2)(zod@3.25.67)))(encoding@0.1.13)
|
||||
'@langchain/mistralai': 0.2.1(@langchain/core@0.3.61(openai@5.8.1(ws@8.18.2)(zod@3.25.67)))(zod@3.25.67)
|
||||
'@langchain/ollama': 0.2.3(@langchain/core@0.3.61(openai@5.8.1(ws@8.18.2)(zod@3.25.67)))
|
||||
axios: 1.10.0(debug@4.4.1)
|
||||
axios: 1.10.0
|
||||
cheerio: 1.0.0
|
||||
handlebars: 4.7.8
|
||||
transitivePeerDependencies:
|
||||
@@ -27466,12 +27483,7 @@ snapshots:
|
||||
|
||||
mkdirp@2.1.3: {}
|
||||
|
||||
mlly@1.7.1:
|
||||
dependencies:
|
||||
acorn: 8.14.0
|
||||
pathe: 1.1.2
|
||||
pkg-types: 1.1.3
|
||||
ufo: 1.5.4
|
||||
mkdirp@3.0.1: {}
|
||||
|
||||
mlly@1.7.4:
|
||||
dependencies:
|
||||
@@ -27498,6 +27510,40 @@ snapshots:
|
||||
|
||||
mobx@6.12.0: {}
|
||||
|
||||
mocha-junit-reporter@2.2.1(mocha@11.7.1):
|
||||
dependencies:
|
||||
debug: 4.4.1(supports-color@8.1.1)
|
||||
md5: 2.3.0
|
||||
mkdirp: 3.0.1
|
||||
mocha: 11.7.1
|
||||
strip-ansi: 6.0.1
|
||||
xml: 1.0.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
mocha@11.7.1:
|
||||
dependencies:
|
||||
browser-stdout: 1.3.1
|
||||
chokidar: 4.0.3
|
||||
debug: 4.4.1(supports-color@8.1.1)
|
||||
diff: 7.0.0
|
||||
escape-string-regexp: 4.0.0
|
||||
find-up: 5.0.0
|
||||
glob: 10.4.5
|
||||
he: 1.2.0
|
||||
js-yaml: 4.1.0
|
||||
log-symbols: 4.1.0
|
||||
minimatch: 9.0.5
|
||||
ms: 2.1.3
|
||||
picocolors: 1.1.1
|
||||
serialize-javascript: 6.0.2
|
||||
strip-json-comments: 3.1.1
|
||||
supports-color: 8.1.1
|
||||
workerpool: 9.3.3
|
||||
yargs: 17.7.2
|
||||
yargs-parser: 21.1.1
|
||||
yargs-unparser: 2.0.0
|
||||
|
||||
module-details-from-path@1.0.3: {}
|
||||
|
||||
moment-timezone@0.5.37:
|
||||
@@ -28210,7 +28256,7 @@ snapshots:
|
||||
|
||||
pdf-parse@1.1.1:
|
||||
dependencies:
|
||||
debug: 3.2.7(supports-color@8.1.1)
|
||||
debug: 3.2.7(supports-color@5.5.0)
|
||||
node-ensure: 0.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -28337,12 +28383,6 @@ snapshots:
|
||||
dependencies:
|
||||
find-up: 4.1.0
|
||||
|
||||
pkg-types@1.1.3:
|
||||
dependencies:
|
||||
confbox: 0.1.8
|
||||
mlly: 1.7.4
|
||||
pathe: 1.1.2
|
||||
|
||||
pkg-types@1.3.1:
|
||||
dependencies:
|
||||
confbox: 0.1.8
|
||||
@@ -28464,7 +28504,7 @@ snapshots:
|
||||
|
||||
posthog-node@3.2.1:
|
||||
dependencies:
|
||||
axios: 1.10.0(debug@4.4.1)
|
||||
axios: 1.10.0
|
||||
rusha: 0.8.14
|
||||
transitivePeerDependencies:
|
||||
- debug
|
||||
@@ -28599,7 +28639,7 @@ snapshots:
|
||||
'@protobufjs/path': 1.1.2
|
||||
'@protobufjs/pool': 1.1.0
|
||||
'@protobufjs/utf8': 1.1.0
|
||||
'@types/node': 20.17.57
|
||||
'@types/node': 20.19.1
|
||||
long: 5.3.2
|
||||
|
||||
proxy-addr@2.0.7:
|
||||
@@ -29091,7 +29131,7 @@ snapshots:
|
||||
|
||||
retry-axios@2.6.0(axios@1.10.0(debug@4.4.1)):
|
||||
dependencies:
|
||||
axios: 1.10.0(debug@4.4.1)
|
||||
axios: 1.10.0
|
||||
|
||||
retry-request@7.0.2(encoding@0.1.13):
|
||||
dependencies:
|
||||
@@ -29116,7 +29156,7 @@ snapshots:
|
||||
|
||||
rhea@1.0.24:
|
||||
dependencies:
|
||||
debug: 3.2.7(supports-color@8.1.1)
|
||||
debug: 3.2.7(supports-color@5.5.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@@ -29579,7 +29619,7 @@ snapshots:
|
||||
asn1.js: 5.4.1
|
||||
asn1.js-rfc2560: 5.0.1(asn1.js@5.4.1)
|
||||
asn1.js-rfc5280: 3.0.0
|
||||
axios: 1.10.0(debug@4.4.1)
|
||||
axios: 1.10.0
|
||||
big-integer: 1.6.52
|
||||
bignumber.js: 9.1.2
|
||||
binascii: 0.0.2
|
||||
@@ -30375,7 +30415,7 @@ snapshots:
|
||||
|
||||
ts-type@3.0.1(ts-toolbelt@9.6.0):
|
||||
dependencies:
|
||||
'@types/node': 20.17.57
|
||||
'@types/node': 20.19.1
|
||||
ts-toolbelt: 9.6.0
|
||||
tslib: 2.8.1
|
||||
typedarray-dts: 1.0.0
|
||||
@@ -30600,8 +30640,6 @@ snapshots:
|
||||
|
||||
uc.micro@2.1.0: {}
|
||||
|
||||
ufo@1.5.4: {}
|
||||
|
||||
ufo@1.6.1: {}
|
||||
|
||||
uglify-js@3.17.4: {}
|
||||
@@ -30672,7 +30710,7 @@ snapshots:
|
||||
'@antfu/install-pkg': 0.3.3
|
||||
'@antfu/utils': 0.7.10
|
||||
'@iconify/utils': 2.1.25
|
||||
debug: 4.4.0
|
||||
debug: 4.4.1(supports-color@8.1.1)
|
||||
kolorist: 1.8.0
|
||||
local-pkg: 0.5.0
|
||||
unplugin: 1.11.0
|
||||
@@ -31342,6 +31380,8 @@ snapshots:
|
||||
worker-timers-broker: 6.1.8
|
||||
worker-timers-worker: 7.0.71
|
||||
|
||||
workerpool@9.3.3: {}
|
||||
|
||||
wrap-ansi@6.2.0:
|
||||
dependencies:
|
||||
ansi-styles: 4.3.0
|
||||
@@ -31441,6 +31481,13 @@ snapshots:
|
||||
|
||||
yargs-parser@21.1.1: {}
|
||||
|
||||
yargs-unparser@2.0.0:
|
||||
dependencies:
|
||||
camelcase: 6.3.0
|
||||
decamelize: 4.0.0
|
||||
flat: 5.0.2
|
||||
is-plain-obj: 2.1.0
|
||||
|
||||
yargs@16.2.0:
|
||||
dependencies:
|
||||
cliui: 7.0.4
|
||||
|
||||
@@ -14,7 +14,6 @@ import path from 'path';
|
||||
// Disable verbose mode for cleaner output
|
||||
$.verbose = false;
|
||||
process.env.FORCE_COLOR = '1';
|
||||
process.env.DOCKER_BUILDKIT = '1';
|
||||
|
||||
// #region ===== Helper Functions =====
|
||||
|
||||
@@ -136,10 +135,12 @@ async function buildDockerImage() {
|
||||
echo(chalk.yellow('INFO: Building Docker image...'));
|
||||
|
||||
try {
|
||||
const { stdout } = await $`DOCKER_BUILDKIT=1 docker build \
|
||||
const { stdout } = await $`docker build \
|
||||
--platform ${platform} \
|
||||
--build-arg TARGETPLATFORM=${platform} \
|
||||
-t ${config.fullImageName} \
|
||||
-f ${config.dockerfilePath} \
|
||||
--load \
|
||||
${config.buildContext}`;
|
||||
|
||||
echo(stdout);
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"cache": false
|
||||
},
|
||||
"build:playwright": {
|
||||
"dependsOn": ["install-browsers", "build"]
|
||||
"dependsOn": ["install-browsers:ci", "build"]
|
||||
},
|
||||
"build:backend": {
|
||||
"dependsOn": ["n8n#build"]
|
||||
|
||||
Reference in New Issue
Block a user