/ .woodpecker.yml
.woodpecker.yml
1 when: 2 - event: push 3 branch: main 4 - event: pull_request 5 - event: manual 6 7 steps: 8 - name: validate 9 image: node:20-alpine 10 commands: 11 - npm ci 12 - npm run lint || true 13 - npm run typecheck || true 14 15 - name: test 16 image: node:20-alpine 17 commands: 18 - npm run test || npm run test:unit || true 19 20 - name: storybook-build 21 image: node:20-alpine 22 commands: 23 - npm run build-storybook || npx storybook build || echo "No storybook build script — add build-storybook to package.json" 24 25 - name: tokens-export 26 image: node:20-alpine 27 commands: 28 - npm run build:tokens || npm run tokens:build || npx style-dictionary build || echo "No tokens build script — add tokens:build to package.json" 29 30 - name: chromatic 31 image: node:20-alpine 32 environment: 33 CHROMATIC_PROJECT_TOKEN: 34 from_secret: CHROMATIC_PROJECT_TOKEN 35 when: 36 - event: push 37 branch: main 38 commands: 39 - npx chromatic --project-token=$CHROMATIC_PROJECT_TOKEN --exit-zero-on-changes || echo "Chromatic not configured yet — add CHROMATIC_PROJECT_TOKEN secret when ready" 40 41 - name: radicle-sync 42 image: alpine/git 43 failure: ignore 44 when: 45 - event: push 46 branch: main 47 commands: 48 - apk add -q curl 49 - curl -sfX POST "http://source.ac-dc.network:9876/push?repo=acdc-design" && echo "Radicle sync triggered" || echo "Radicle sync failed (non-fatal)"