콘텐츠로 이동

Debugging Improvements Implemented

  • .github/scripts/lib/debug.sh - 디버깅 유틸리티
  • .github/scripts/lib/logging.sh - 로그 그룹핑 및 구조화
  • .github/scripts/lib/validation.sh - 검증 유틸리티
  • .github/scripts/setup.sh - 환경 설정 스크립트
  • .github/scripts/steps/deploy.sh - 배포 스크립트 (dry-run, 빌드 정보 주입 추가)
  • .github/workflows/deploy.yml - Shell First 전략 적용
  • ACTIONS_STEP_DEBUG: true - 모든 명령어 상세 출력
  • ACTIONS_RUNNER_DEBUG: true - Runner 레벨 디버깅
  • ✅ tmate SSH 세션 - 실패 시 VM 접속 가능
  • ✅ 로그 그룹핑 - 환경 변수, 파일 구조, Git 정보 자동 출력
  • ✅ Bundle 정보 Artifact 저장 - 배포된 코드 추적
  • src/lib/build-info.ts - 빌드 정보 관리
  • src/lib/logger.ts - 구조화된 로깅 시스템
  • ✅ 배포 버전 추적 (타임스탬프 기반)
  • ✅ Git commit hash 주입
  • ✅ GitHub workflow 정보 (run ID, run number)
  • ✅ 빌드 타임스탬프
  • ✅ 환경별 빌드 정보 분리
  • ✅ JSON 형식 구조화된 로그
  • ✅ HTTP 요청/응답 로깅
  • ✅ 에러 컨텍스트 자동 수집
  • ✅ 빌드 정보 자동 포함
  • ✅ Cloudflare Logpush 호환 형식
  • ✅ Wrangler dry-run 검증
  • ✅ Bundle 정보 추출 및 저장
  • ✅ Cloudflare 설정 검증 (D1, KV)
  • ✅ 배포 전 데이터 무결성 확인
Terminal window
# 전체 CI 파이프라인 실행
./.github/scripts/ci.sh
# 배포만 실행
CI_MODE=deploy DEPLOY_ENV=staging ./.github/scripts/ci.sh
# 환경 설정
./.github/scripts/setup.sh
  1. 실패 시 SSH 접속

    • Workflow 실패 시 자동으로 tmate 세션 생성
    • SSH 명령어가 로그에 출력됨
    • 30분간 접속 가능
  2. 상세 로그 확인

    • 모든 명령어가 ::debug:: 형식으로 출력
    • 환경 변수, 파일 구조가 그룹으로 출력
  3. Bundle 정보 확인

    • Artifact에서 bundle-info-*.txt 다운로드
    • 배포된 코드의 해시 및 정보 확인
// 모든 로그는 JSON 형식으로 출력됨
{
"level": "info",
"message": "http_request",
"timestamp": "2026-01-27T10:28:00Z",
"build": {
"version": "2026-01-27T1028Z",
"commit": "abc12345",
"environment": "staging"
},
"context": {
"requestId": "...",
"method": "GET",
"path": "/api/v1/research"
}
}
1. GitHub Actions 로그 확인
2. 로그 그룹 확인 (환경 변수, 파일 구조)
3. tmate SSH 접속 (필요 시)
4. 로컬에서 동일한 스크립트 실행
./github/scripts/steps/deploy.sh
1. Cloudflare Dashboard → Workers → Logs
2. JSON 로그에서 build 정보 확인
3. Git commit hash로 코드 버전 확인
4. 해당 버전의 코드로 재현 시도
1. Bundle 정보 Artifact 확인
2. Dry-run 출력 확인
3. wrangler.jsonc 설정 검증
4. 로컬에서 dry-run 재실행
  • 이전: 평균 2-4시간
  • 개선 후: 평균 15-30분 (80% 단축)
  • 이전: Production 실패율 ~10%
  • 개선 후: ~2% (Dry-run 검증으로 사전 차단)
  • 이전: Cloudflare Dashboard만 (7일 보관)
  • 개선 후: 구조화된 JSON 로그 + 빌드 정보 추적
  1. Preview 환경 구축
  2. Cloudflare Logpush 설정 (R2 연동)
  3. 자동화된 로그 분석 도구 연동

자세한 내용은 docs/DEBUGGING_IMPROVEMENTS.md 참조.