From f339f9407bba24dc69728ee3ef7f40eccf704987 Mon Sep 17 00:00:00 2001 From: Jason Woltje Date: Sat, 14 Mar 2026 20:14:32 -0500 Subject: [PATCH] ci: enable Turbo remote cache + parallelize pipeline steps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Connect to turbo.mosaicstack.dev remote cache (ducktors/turborepo-remote-cache) - Parallelize lint, format, and test after typecheck (were sequential) - Add turbo_token secret for cache authentication - TURBO_API + TURBO_TEAM env vars on all Turbo-managed steps Before: install → typecheck → lint → format → test → build (serial) After: install → typecheck → lint ─┐ format ├→ build test ──┘ Co-Authored-By: Claude Opus 4.6 (1M context) --- .woodpecker/ci.yml | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/.woodpecker/ci.yml b/.woodpecker/ci.yml index 21af84c..6c232c5 100644 --- a/.woodpecker/ci.yml +++ b/.woodpecker/ci.yml @@ -5,9 +5,9 @@ variables: 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. +# Turbo remote cache is at turbo.mosaicstack.dev (ducktors/turborepo-remote-cache). +# TURBO_TOKEN is set as a Woodpecker secret. Turbo picks up TURBO_API, TURBO_TOKEN, +# and TURBO_TEAM from the environment automatically. steps: install: @@ -18,14 +18,23 @@ steps: typecheck: image: *node_image + environment: + TURBO_API: https://turbo.mosaicstack.dev + TURBO_TEAM: mosaic + secrets: [turbo_token] commands: - *enable_pnpm - pnpm typecheck depends_on: - install + # lint, format, and test are independent — run in parallel after typecheck lint: image: *node_image + environment: + TURBO_API: https://turbo.mosaicstack.dev + TURBO_TEAM: mosaic + secrets: [turbo_token] commands: - *enable_pnpm - pnpm lint @@ -38,20 +47,30 @@ steps: - *enable_pnpm - pnpm format:check depends_on: - - lint + - typecheck test: image: *node_image + environment: + TURBO_API: https://turbo.mosaicstack.dev + TURBO_TEAM: mosaic + secrets: [turbo_token] commands: - *enable_pnpm - pnpm test depends_on: - - format + - typecheck build: image: *node_image + environment: + TURBO_API: https://turbo.mosaicstack.dev + TURBO_TEAM: mosaic + secrets: [turbo_token] commands: - *enable_pnpm - pnpm build depends_on: + - lint + - format - test