ci: enable Turbo remote cache + parallelize pipeline steps
- 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) <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user