Scrum4Me/docs/runbooks/deploy-control.md
Janpeter Visser b39c3ec2e1
docs(cleanup): archief verouderde plannen, backlog en root-duplicaten (#191)
* docs(cleanup): archief verouderde plannen, backlog en root-duplicaten

- 6 plans naar docs/old/plans/ (PBI-11/75/78, user-settings-store, Local github setup, lees-de-readme — laatste was verkeerde repo)
- docs/backlog/ naar docs/old/backlog/ (pre-MCP statische registry; live werk loopt via Scrum4Me-MCP)
- 6 root-level duplicaten naar docs/old/ (functional, {pbi,story,task}-dialog, product-backlog, backlog)
- 2 landing plans (niet uitgevoerd) krijgen archived: true frontmatter — blijven op plek maar uit INDEX
- scripts/generate-docs-index.mjs: skip docs/old/** + skip archived: true
- CLAUDE.md: rijen docs/backlog/, docs/plans/<key>-*.md, docs/manual/ weg; Track B-sectie verwijderd
- README.md / CHANGELOG.md / docs/plans/v1-readiness.md: link-fixes naar nieuwe locaties

Verify groen (lint + typecheck + 718 tests). docs/INDEX.md geregenereerd.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(cleanup): registreer handmatige verplaatsingen en fix referenties

- 4 plans verplaatst naar docs/old/plans/ (M10-qr-pairing-login, auto-pr-deploy-sync, docs-restructure-ai-lookup, v1-readiness)
- 3 archive-plans verplaatst naar docs/old/plans/ (archive-map nu leeg)
- ST-1114-copilot-reviews + 3 research-docs naar nieuwe docs/Ideas/ map
- Duplicaat docs/old/2026-04-27-m8-realtime-solo.md verwijderd (origineel zit in docs/old/plans/)
- Link-fixes naar nieuwe locaties:
  - CHANGELOG.md → docs/old/plans/v1-readiness.md
  - docs/runbooks/deploy-control.md → docs/old/plans/auto-pr-deploy-sync.md (2x)
  - docs/runbooks/worker-idempotency.md → docs/old/plans/auto-pr-deploy-sync.md
  - docs/plans/docs-restructure-pbi-spec.md → docs/old/plans/docs-restructure-ai-lookup.md (4x text + 2x href)
- docs/INDEX.md geregenereerd (96 docs, was 100)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 19:46:00 +02:00

5.3 KiB

title status audience language last_updated when_to_read
Deploy-controle: triggers, labels, path-filter active
contributor
ai-agent
nl 2026-05-07 Vóór een PR mergen, vóór doc-only changes pushen, of bij troubleshooting van Vercel-deployments.

Deploy-controle

Selectieve controle over wanneer Vercel-deployments worden uitgevoerd vanuit de GitHub Actions workflow .github/workflows/ci.yml. Vercel's eigen Git-integratie staat uit (vercel.json: git.deploymentEnabled: false) — de workflow is de enige bron van deploy-truth.

Auto-deploy staat momenteel UIT. Zowel PR-preview als push-naar-main-productie deploys zijn afhankelijk van repo-variable AUTO_DEPLOY_ENABLED=true. Default ontbreekt die variable → beide auto-deploy-jobs worden overgeslagen om Actions-minuten te besparen. Handmatig deployen blijft werken via workflow_dispatch (zie onderaan). Aanzetten: Settings → Secrets and variables → Actions → Variables → New repository variable → AUTO_DEPLOY_ENABLED = true.


Triggers en defaults

Event Default-deploy
push naar main Productie (vercel deploy --prod) — alleen als path-filter zegt "code" en AUTO_DEPLOY_ENABLED=true
pull_request naar main Preview (vercel deploy) — alleen als path-filter zegt "code", geen skip-deploy label en AUTO_DEPLOY_ENABLED=true
workflow_dispatch Handmatig — kies target: preview | production in Actions-tab. Werkt altijd, ongeacht AUTO_DEPLOY_ENABLED.

CI (lint, typecheck, test, build) draait altijd op push/PR — ook voor doc-only changes. Alleen de deploy-jobs respecteren path-filter, labels, en de AUTO_DEPLOY_ENABLED flag.


Path-filter

Job changes (dorny/paths-filter@v3) zet output code=true als één van deze paden gewijzigd is:

app/**
components/**
lib/**
actions/**
stores/**
prisma/**
public/**
package.json
package-lock.json
next.config.ts
tsconfig.json
vercel.json
proxy.ts
middleware.ts
.github/workflows/**

Wijzigingen aan docs/, CLAUDE.md, README.md, .vscode/**, etc. zetten code=falsegeen deploy (zelfs niet preview).


Labels (alleen op PRs)

Label Effect
skip-deploy Preview-deploy overslaan, ook als path-filter "code" zegt
force-deploy Preview-deploy forceren, ook als path-filter "geen code" zegt

Beide labels werken alleen op PR's. Op pushes naar main heeft alleen path-filter invloed (productie-gate).


Beslismatrix per scenario

Trigger Path-filter Labels Resultaat
PR met code-change code=true (geen) Preview-deploy
PR met code-change code=true skip-deploy Preview overgeslagen
PR met doc-only code=false (geen) Geen deploy
PR met doc-only code=false force-deploy Preview-deploy
PR met code-change code=true skip-deploy + force-deploy force-deploy wint
Push main code code=true n.v.t. Productie-deploy + migrate
Push main doc-only code=false n.v.t. Geen deploy
workflow_dispatch target=preview n.v.t. n.v.t. Manuele preview
workflow_dispatch target=production n.v.t. n.v.t. Manuele prod + migrate

Voorbeelden

Doc-only PR die je niet wil deployen (default):

git checkout -b docs/fix-typo
# alleen docs/foo.md aanpassen
git commit -am "docs: typo"
gh pr create
# → CI runt, deploy-preview = SKIPPED

Doc-only PR die je wél visueel wil checken:

gh pr create
gh pr edit --add-label force-deploy
# → CI runt, deploy-preview RUNT

Code-PR die je niet wil deployen (bv. WIP):

gh pr create
gh pr edit --add-label skip-deploy
# → CI runt, deploy-preview SKIPPED

Manuele productie-redeploy zonder push:

  1. GitHub repo → Actions → CI workflow → "Run workflow" knop
  2. target: production → Run
  3. deploy-manual job draait prisma migrate deploy + vercel deploy --prod

Troubleshooting

Probleem: Twee deploys verschijnen op Vercel-dashboard per push.

→ Check vercel.json bevat "git": { "deploymentEnabled": false }. Zo niet: Vercel's eigen Git-integratie deployt parallel naast de workflow.

Probleem: Mijn PR met code-change deployt geen preview.

→ Check labels: heb je skip-deploy aangezet? Verwijder het label of voeg force-deploy toe. → Check changes-job output in Actions-tab: zegt het code=false? Mogelijk staat je wijziging buiten de path-filter (bv. een nieuw top-level bestand). Pas filter aan in ci.yml als nodig.

Probleem: Push naar main triggert geen prod-deploy.

→ Check Actions-tab changes-job output. code=false betekent geen deploy. → Forceer via workflow_dispatch met target=production.

Probleem: workflow_dispatch toont geen "Run workflow" knop.

→ Workflow moet minstens één keer op de default branch (main) hebben gedraaid voordat de knop verschijnt. Eerste keer: merge naar main of push direct naar main.


Referenties

  • Workflow: .github/workflows/ci.yml
  • Vercel-config: vercel.json
  • Plan: docs/old/plans/auto-pr-deploy-sync.md Deel A
  • Branch- & commit-strategie: docs/runbooks/branch-and-commit.md
  • Auto-PR-flow (toekomstig): docs/old/plans/auto-pr-deploy-sync.md Deel B