From 4b373acfbf8a95b3f4b471535a8e6c694de90d09 Mon Sep 17 00:00:00 2001 From: Jason Woltje Date: Sat, 31 Jan 2026 10:29:38 -0600 Subject: [PATCH] ci: optimize pnpm install to prevent lock file conflicts Changed CI pipeline to install dependencies only once in the install step. All subsequent steps now reuse the installed node_modules instead of reinstalling, which prevents ENOENT errors from concurrent pnpm lock file operations. - Only 'install' step runs 'pnpm install --frozen-lockfile' - All other steps use 'corepack enable' and reuse existing dependencies - Fixes ENOENT chown errors on lock.yaml temporary files Refs #CI-woodpecker Co-Authored-By: Claude Sonnet 4.5 --- .woodpecker.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index afdcaab..477c79d 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -7,6 +7,8 @@ variables: - &install_deps | corepack enable pnpm install --frozen-lockfile + - &use_deps | + corepack enable steps: install: @@ -17,7 +19,7 @@ steps: security-audit: image: *node_image commands: - - *install_deps + - *use_deps - pnpm audit --audit-level=high depends_on: - install @@ -27,7 +29,7 @@ steps: environment: SKIP_ENV_VALIDATION: "true" commands: - - *install_deps + - *use_deps - pnpm lint || true # Non-blocking while fixing legacy code depends_on: - install @@ -39,7 +41,7 @@ steps: environment: SKIP_ENV_VALIDATION: "true" commands: - - *install_deps + - *use_deps - pnpm --filter "@mosaic/api" prisma:generate depends_on: - install @@ -49,7 +51,7 @@ steps: environment: SKIP_ENV_VALIDATION: "true" commands: - - *install_deps + - *use_deps - pnpm --filter "@mosaic/api" prisma:generate - pnpm typecheck depends_on: @@ -60,7 +62,7 @@ steps: environment: SKIP_ENV_VALIDATION: "true" commands: - - *install_deps + - *use_deps - pnpm --filter "@mosaic/api" prisma:generate - pnpm test || true # Non-blocking while fixing legacy tests depends_on: @@ -72,7 +74,7 @@ steps: SKIP_ENV_VALIDATION: "true" NODE_ENV: "production" commands: - - *install_deps + - *use_deps - pnpm --filter "@mosaic/api" prisma:generate - pnpm build depends_on: