- 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>
5.3 KiB
| title | status | audience | language | last_updated | when_to_read | ||
|---|---|---|---|---|---|---|---|
| Deploy-controle: triggers, labels, path-filter | active |
|
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 viaworkflow_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=false → geen 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:
- GitHub repo → Actions → CI workflow → "Run workflow" knop
target: production→ Run- →
deploy-manualjob draaitprisma 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.mdDeel A - Branch- & commit-strategie:
docs/runbooks/branch-and-commit.md - Auto-PR-flow (toekomstig):
docs/old/plans/auto-pr-deploy-sync.mdDeel B