From 4e899ea55fad938751ec40bcf4478aef12f05159 Mon Sep 17 00:00:00 2001 From: Tomi Turtiainen <10324676+tomi@users.noreply.github.com> Date: Fri, 30 Aug 2024 09:41:50 +0300 Subject: [PATCH] feat: Add n8n postgres setup to benchmarks (no-changelog) (#10604) --- .../n8nSetups/postgres/docker-compose.yml | 29 +++++++++++++++++++ .../@n8n/benchmark/scripts/runForN8nSetup.mjs | 11 ++++--- 2 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 packages/@n8n/benchmark/scripts/n8nSetups/postgres/docker-compose.yml diff --git a/packages/@n8n/benchmark/scripts/n8nSetups/postgres/docker-compose.yml b/packages/@n8n/benchmark/scripts/n8nSetups/postgres/docker-compose.yml new file mode 100644 index 000000000..7e9c48e01 --- /dev/null +++ b/packages/@n8n/benchmark/scripts/n8nSetups/postgres/docker-compose.yml @@ -0,0 +1,29 @@ +services: + postgres: + image: postgres:16 + restart: always + environment: + - POSTGRES_DB=n8n + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=password + n8n: + image: ghcr.io/n8n-io/n8n:${N8N_VERSION:-latest} + environment: + - N8N_DIAGNOSTICS_ENABLED=false + - N8N_USER_FOLDER=/n8n + - DB_TYPE=postgresdb + - DB_POSTGRESDB_HOST=postgres + - DB_POSTGRESDB_PASSWORD=password + ports: + - 5678:5678 + volumes: + - ${RUN_DIR}:/n8n + depends_on: + - postgres + benchmark: + image: ghcr.io/n8n-io/n8n-benchmark:${N8N_BENCHMARK_VERSION:-latest} + depends_on: + - n8n + environment: + - N8N_BASE_URL=http://n8n:5678 + - K6_API_TOKEN=${K6_API_TOKEN} diff --git a/packages/@n8n/benchmark/scripts/runForN8nSetup.mjs b/packages/@n8n/benchmark/scripts/runForN8nSetup.mjs index 1bd31a1b5..c7f1e8890 100755 --- a/packages/@n8n/benchmark/scripts/runForN8nSetup.mjs +++ b/packages/@n8n/benchmark/scripts/runForN8nSetup.mjs @@ -19,15 +19,18 @@ async function main() { const n8nTag = argv.n8nDockerTag || process.env.N8N_DOCKER_TAG || 'latest'; const benchmarkTag = argv.benchmarkDockerTag || process.env.BENCHMARK_DOCKER_TAG || 'latest'; const k6ApiToken = argv.k6ApiToken || process.env.K6_API_TOKEN || undefined; - const runDir = argv.runDir || process.env.RUN_DIR || '/n8n'; + const baseRunDir = argv.runDir || process.env.RUN_DIR || '/n8n'; - if (!fs.existsSync(runDir)) { + if (!fs.existsSync(baseRunDir)) { console.error( - `The run directory "${runDir}" does not exist. Please specify a valid directory using --runDir`, + `The run directory "${baseRunDir}" does not exist. Please specify a valid directory using --runDir`, ); process.exit(1); } + const runDir = path.join(baseRunDir, n8nSetupToUse); + fs.emptyDirSync(runDir); + const dockerComposeClient = new DockerComposeClient({ $: $({ cwd: composeFilePath, @@ -42,7 +45,7 @@ async function main() { }); try { - await dockerComposeClient.$('up', '-d', 'n8n'); + await dockerComposeClient.$('up', '-d', '--remove-orphans', 'n8n'); await dockerComposeClient.$('run', 'benchmark', 'run', `--scenarioNamePrefix=${n8nSetupToUse}`); } catch (error) {