Skip to content

Deploy Runbook

ClarusIubar edited this page May 20, 2026 · 10 revisions

배포 런북

목적

이 문서는 STH-1-Class-One-Group/JamIssueWeb Front service 배포만 다룹니다.

Backend API, Cloudflare Worker, DB migration, 관리자 서비스 배포는 ClarusIubar/JamIssue_admin에서 관리합니다.

배포 대상

GitHub Actions

Workflow 목적 현재 책임
ci lint, typecheck, build, unit/smoke 검증 Web Front service
cloudflare-pages Cloudflare Pages 배포 또는 PR build-only 검증 Web Front service
production-smoke 운영 Web/API 연결 smoke Web Front consumer 검증
CodeQL 정적 보안 분석 Web Front service

Worker/API 배포 workflow는 이 레포의 책임이 아닙니다.

필요한 GitHub Actions secrets

이 레포에는 public Web Front 배포에 필요한 값만 둡니다.

이름 용도
CLOUDFLARE_ACCOUNT_ID Cloudflare Pages 배포
CLOUDFLARE_API_TOKEN Cloudflare Pages 배포
PUBLIC_APP_BASE_URL Web Front가 호출할 API base URL
PUBLIC_SUPABASE_ANON_KEY public client에서 허용된 anon key

다음 항목은 이 레포에 두지 않습니다.

  • Supabase service-role key
  • OAuth client secret
  • Worker runtime secret
  • DB migration credential
  • backend deploy token

배포 전 검증

npm ci
npm run lint
npm run typecheck
npm run build
npm run smoke:public

필요한 경우 추가로 실행합니다.

npm run test:unit
npm run test:integration
npm run test:regression
npm run test:smoke:ui

배포 후 확인

  • https://daejeon.jamissue.com 접속
  • React SPA 직접 경로 진입 확인
  • PUBLIC_APP_BASE_URLhttps://api.daejeon.jamissue.com인지 확인
  • 공개 smoke 통과 확인
  • 로그인 진입 경로가 backend API로 이동하는지 확인
  • GitHub Actions ci, cloudflare-pages, production-smoke, CodeQL 통과 확인

Cloudflare challenge smoke 예외

GitHub Actions runner가 운영 API 호출 중 Cloudflare challenge HTML을 받을 수 있습니다.

이 경우 production-smoke는 CI 환경에서만 해당 응답을 네트워크/봇 차단 상태로 판정해 허용합니다. 로컬 smoke는 실제 사용자 접근 검증으로 계속 엄격하게 봅니다.

역할 대응

증상 확인 위치
Pages 배포 실패 cloudflare-pages workflow
build 실패 ci workflow
운영 smoke 실패 production-smoke workflow와 API 응답
API shape 불일치 ClarusIubar/JamIssue_admin API contract
로그인 callback 실패 ClarusIubar/JamIssue_admin OAuth/Worker 설정

관련 문서

Clone this wiki locally