피파가 오늘 처음부터 짓는다면
2026 프로젝트의 이상화된 CI/CD 설정 — 작은 팀, 실제 사용자, 적당한 스케일. 조립; 한 번에 다 만들지 마.
Repo level baseline
- Main 의 branch protection: required CI green, strict status check, merge queue, force push 없음, 실용적이면 signed commit.
- Secret scanning + push protection 활성화.
- Dependabot 알림 + 패치는 자동 merge 인 버전 업데이트.
- 주간 일정의 CodeQL.
Workflow 라이브러리
ci.yml— format → lint → type-check → unit → integration. 모든 PR.permissions: read, concurrency cancel-in-progress, docs paths-ignore.release.yml— tag push 시 빌드, sign, 게시, GitHub Release 생성.deploy-staging.yml— main merge 시 staging environment 에 deploy, smoke test.deploy-prod.yml— version input 가진 workflow_dispatch 시, required reviewer + branch policy 가진 prod environment.nightly.yml— full test matrix, dependency audit, base image rebuild. workflow_dispatch 와 짝.codeql.yml+dependabot-auto-merge.yml— 보안 인프라.
Auth & secret
- Cloud auth 는 OIDC. 장기 key 없음.
- Org level
GITHUB_TOKENdefault = restricted. - Workflow 별 명시적
permissions:. - Third-party action SHA-pin.
- Secret rotation runbook + 분기 드릴.
Observability
- 핵심 metric 가진 step summary.
- Deploy 에 Slack 알림 (성공 + 실패).
- CI health (pass rate, p95 duration, flake rate) 게시하는 주간 digest job.
AI/ML 서비스라면 추가로
- baseline-as-release-asset 의 eval gate workflow.
- 헤비 컴퓨트 (MLX 위한 Apple Silicon, 학습 위한 GPU 박스) 위한 self-hosted runner.
- 학습 pipeline 이 push 하는 model registry.
- API contract test (mock brain) + eval test (실제 brain) 별도 job.
진짜 가치
이거 어느 것도 특이하지 않아. 각 조각이 어느 quest 에 있어. Discipline 은 첫 사건이 빠진 거 상기시킨 후 끼워 넣는 게 아니라 새 프로젝트에 첫 날부터 다 갖고 있는 것.