nexo/agent-roadmap/phase/upstream-runtime/milestones/cicd-operations.md

3.5 KiB

Milestone: CI/CD와 운영 업데이트 루프

위치

  • Roadmap: agent-roadmap/ROADMAP.md
  • Phase: agent-roadmap/phase/upstream-runtime/PHASE.md

목표

Mattermost server/webapp/push-proxy update와 nexo Flutter SDK 검증을 반복 가능한 CI/CD와 운영 runbook으로 연결한다. upstream 업데이트에 따른 이슈를 빠르게 분류하고, 수정/보류/rollback 결정을 남길 수 있는 흐름을 만든다.

상태

[계획]

승격 조건

  • 없음

구현 잠금

  • 상태: 잠금
  • 결정 필요:
    • CI/CD 실행 위치를 GitHub Actions, 자체 runner, 원격 테스트 서버 중 어디에 둘지 결정한다.
    • production-like 배포 대상과 secret 보관 방식을 결정한다.
  • 결정 완료:
    • 2026-05-27: upstream update를 쉽게 따라가기 위한 CI/CD와 이슈 대응 루프를 프로젝트 방향성에 포함한다.

범위

  • workspace bin/test, bin/lint, bin/build 기반 기본 검증
  • optional Go test/vet/build와 webapp/npm 검증
  • compose smoke, server ping, webapp 접근, push-proxy smoke
  • Flutter SDK Dart/integration/Android native test
  • upstream update 실패 이슈화, rollback, release note 흐름

기능

Epic: [ci] Continuous verification

upstream-followable runtime과 nexo SDK를 같은 변경 흐름에서 검증한다.

  • [workspace-checks] CI에서 bin/test, bin/lint, bin/build를 실행하고 skip된 도구를 보고하는 기준을 만든다.
  • [core-checks] optional Go test/vet/build와 webapp 검증을 upstream update 또는 core 변경 시 실행하는 기준을 만든다.
  • [compose-smoke] compose로 core, webapp, db, push-proxy를 올리고 최소 smoke를 확인하는 CI 또는 원격 검증 흐름을 만든다.
  • [sdk-checks] Flutter SDK Dart test, client integration test, Android native unit test를 환경별로 나누어 실행하는 기준을 만든다.

Epic: [cd] Deployment loop

업데이트와 배포 실패가 추적 가능한 이슈로 남도록 운영 루프를 만든다.

  • [update-branch] Mattermost server/webapp/push-proxy baseline update용 branch, diff, patch inventory 절차를 정리한다.
  • [deploy-pipeline] dev/test/production-like compose 배포, secret 주입, rollback 절차를 정리한다.
  • [issue-loop] upstream update 실패를 server, webapp, push-proxy, SDK contract, infra 중 하나로 분류하고 후속 이슈로 남기는 절차를 만든다.
  • [release-note] server/front/push-proxy baseline과 Flutter SDK compatibility를 한 번에 볼 수 있는 release note 기준을 만든다.

완료 리뷰

  • 상태: 없음
  • 요청일: 없음
  • 완료 근거: 없음
  • 리뷰 필요:
    • 사용자가 완료 결과를 확인했다
    • archive 이동을 승인했다
  • 리뷰 코멘트: 없음

범위 제외

  • production hardening 전체 구현은 배포 대상과 secret 정책 결정 전까지 진행하지 않는다.
  • 외부 공개용 landing page나 marketing site는 포함하지 않는다.
  • billing, organization management, 별도 admin console은 포함하지 않는다.

작업 컨텍스트

  • 관련 경로: .github/, bin/, services/core/, services/core/compose/, packages/messaging_flutter/, apps/client/, docs/
  • 표준선(선택): 먼저 private/internal deployment loop를 만들고, runner와 secret 정책이 확정되면 production-like CD로 확장한다
  • 선행 작업: 업스트림 팔로잉 기준선
  • 후속 작업: 운영 runbook, release/versioning 고도화
  • 확인 필요: CI/CD 실행 위치와 production-like 배포 대상