From c8f3e0db44f22d08ef2f6229bdfcf30711c2cbdb Mon Sep 17 00:00:00 2001 From: Jason Woltje Date: Fri, 13 Mar 2026 13:10:30 -0500 Subject: [PATCH] fix(ci): sequential steps + single install to prevent OOM on runner MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Each step was re-running pnpm install independently, and all quality steps (typecheck, lint, format, test) ran in parallel. On merge commits with more accumulated code this pushed the CI runner over its memory limit (exit code 254 = OOM kill). Fix: - install once, share node_modules via Woodpecker workspace volume - sequential execution: install → typecheck → lint → format → test → build - corepack enable in each step (fresh container) but no redundant install --- .woodpecker/ci.yml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.woodpecker/ci.yml b/.woodpecker/ci.yml index 3bcf79b..21af84c 100644 --- a/.woodpecker/ci.yml +++ b/.woodpecker/ci.yml @@ -1,22 +1,25 @@ variables: - &node_image 'node:22-alpine' - - &install_deps | - corepack enable - pnpm install --frozen-lockfile + - &enable_pnpm 'corepack enable' when: - event: [push, pull_request, manual] +# Steps run sequentially to avoid OOM on the CI runner. +# node_modules is installed once by the install step and shared across +# all subsequent steps via Woodpecker's shared workspace volume. + steps: install: image: *node_image commands: - - *install_deps + - corepack enable + - pnpm install --frozen-lockfile typecheck: image: *node_image commands: - - *install_deps + - *enable_pnpm - pnpm typecheck depends_on: - install @@ -24,34 +27,31 @@ steps: lint: image: *node_image commands: - - *install_deps + - *enable_pnpm - pnpm lint depends_on: - - install + - typecheck format: image: *node_image commands: - - *install_deps + - *enable_pnpm - pnpm format:check depends_on: - - install + - lint test: image: *node_image commands: - - *install_deps + - *enable_pnpm - pnpm test depends_on: - - install + - format build: image: *node_image commands: - - *install_deps + - *enable_pnpm - pnpm build depends_on: - - typecheck - - lint - - format - test -- 2.49.1