docs(adr-0028): accept CI/CD + git hosting migration to GitLab #227
Reference in New Issue
Block a user
Delete Branch "docs/adr-0028-accept"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Promotes ADR-0028 from
proposedtoaccepted. Shipped asproposedin #226; no open question left on either drivers, considered options, or the 4-phase migration sequence. Same shape as #219 (ADR-0026 + ADR-0027 acceptance).Once merged, Phase 1 of the migration (
mirror-and-bootstrap— repos pushed to GitLab, branch protection / MR templates / deploy keys / Renovate reconfig) is unblocked.What lands
docs/decisions/0028-migrate-cicd-and-git-hosting-to-gitlab.mdstatus: proposed → accepted.docs/decisions/0015-cicd-gitea-actions.mdaccepted.docs/decisions/README.mdproposed → accepted.CLAUDE.mdADRs 0001 → 0028 acceptedwith a one-sentence explanation that ADR-0028 supersedes only ADR-0015's platform choice. CI/CD architecture bullet rewritten to reflect the accepted-but-not-yet-implemented state — "Gitea Actions today, migrating to GitLab CE onvm-gitlabper ADR-0028 (4-phase rollout in follow-up PRs)". The architectural detail (gates list, thin YAML, signed commits) was preserved; only the platform headline and the act_runner→GitLab Runner line are touched. Also corrected:ci:scan(which doesn't exist as a script) → the real script names (ci:catalogue-drift,ci:audit,ci:perf,ci:gzip-budgets).Notes for the reviewer
ci:scanis not a real script name; the actual gates areci:check,ci:catalogue-drift,ci:audit,ci:commits,ci:perf,ci:gzip-budgets. Updated in the same touch since the bullet was being rewritten anyway.pnpm ci:checkimpact.pnpm exec prettier --checkclean on the four touched files.Test plan
pnpm exec prettier --check— clean on the four touched files.ADRs 0001 → 0028 acceptedmatches reality (grep '^status: ' docs/decisions/*.mdshows everything below 0029 asaccepted).What's next (post-merge)
mirror-and-bootstrap—git push --mirror gitlabforapf_portaland the proto vendoring inapf-ai-service. GitLab side: groups, projects, branch protection (mirror Gitea's), MR templates, deploy keys, Renovate reconfigured for GitLab. No.gitlab-ci.ymlyet — Gitea pipelines continue to gate. Ops work primarily; the only PR-shaped output is a Renovate config update on the apf-portal repo if its host detection changes.gitlab-ci-pipeline—.gitlab-ci.ymllands alongside.gitea/workflows/ci.yml. Both pipelines run in parallel for ~1 calendar week. GitLab Runner registered onvm-gitlab.cutover— remotes flip in CLAUDE.md, READMEs,docs/setup/01-dev-debian-vm-setup.md§8.3..gitea/workflows/+infra/ci-runners.compose.ymldeleted, Gitea read-only / archive.cleanup— stale references sweep, required signed-commits onmainenabled.In parallel — once you've finished walking through the dev VM bootstrap — the paused ADR-0027 PR 1 (Region / Delegation / Structure Prisma schema + inline seed) and ADR-0026 PR 1 (Person / User / UserScope schema + provisioner) can ship on Gitea; they're decoupled from the migration and don't need to wait for it.