레포트 작성 기능 보완

This commit is contained in:
Lectom C Han
2025-12-19 17:06:19 +09:00
parent e04467f962
commit 4de3e04b99
5 changed files with 186 additions and 32 deletions

View File

@@ -41,12 +41,13 @@
## backup.yml (프리스캔 백업) 동작 개요
1) 입력 또는 `branch_list`를 파싱해 유효 항목을 확정하고, 사전 단계에서 미러 서버(`engdev@172.16.10.191`) 홈 내 `.git` 디렉터리마다 `git fetch --mirror --prune`로 최신 상태로 맞춥니다.
2) 소스별 로컬 캐시(워크플로우 내 생성/갱신)를 이용해 브랜치 해시를 수집하고 필요한 브랜치만 fetch하므로 동일 커밋 다중 브랜치에서도 중복 전송을 줄입니다. 캐시가 없으면 원본을 직접 조회합니다.
2) Gitea에 해당 저장소가 있는지 조회 후 `main` 해시를 확인합니다.
3) 사전 판정: 타겟이 없거나 `main`이 없으면 “신규 백업”, 해시가 같으면 “건너뜀”, 다르면 “증분 백업”으로 결정합니다.
4) 해시 스냅샷과 판정 테이블을 `backup_reports/` 폴더에 `source_heads_*.tsv`, `target_heads_*.tsv`, `decisions_*.tsv`로 기록합니다.
5) “건너뜀”은 바로 알림 후 종료, “신규/증분”만 fetch→push 실행합니다.
6) 실행 단계: 저장소 존재 확인/생성(`default_branch=main`) → shallow-exclude 기반 fetch(미지원 시 타겟 main 얕은 시드 후 일반 fetch) → `main`으로 강제 푸시 → 태그 동기화(옵션) → 기본 브랜치 `main` 패치 → 임시 폴더 정리.
7) 알림은 시작/성공/실패/건너뜀에 대해 KST 타임스탬프, 모드, 소요시간을 포함해 전송합니다.
3) Gitea에 해당 저장소가 있는지 조회 후 `main` 해시를 확인합니다.
4) 사전 판정: 타겟이 없거나 `main`이 없으면 “신규 백업”, 해시가 같으면 “건너뜀”, 다르면 “증분 백업”으로 결정합니다.
5) 판정/타이밍 정보를 로그 파일(decisions/timings)로 남기고, 이후 스텝에서 `report_<ts>.md`로 전체 테이블을 생성합니다.
6) “건너뜀”은 바로 알림 후 종료, “신규/증분”만 fetch→push 실행합니다.
7) 실행 단계: 저장소 존재 확인/생성(`default_branch=main`) → shallow-exclude 기반 fetch(미지원 시 타겟 main 얕은 시드 후 일반 fetch) → `main`으로 강제 푸시 → 태그 동기화(옵션) → 기본 브랜치 `main` 패치 → 임시 폴더 정리.
8) 알림은 시작/성공/실패/건너뜀에 대해 KST 타임스탬프, 모드, 소요시간을 포함해 전송합니다.
9) 실행 후 `backup_reports/` 전체를 `backup_reports_<run_id>` 이름으로 artifact 업로드합니다. `report_*.md` 하나에 Decisions/Timings 전체 테이블이 포함됩니다.
## mirror.yml (즉시 복제) 동작 개요
1) 브랜치 존재 여부 확인 (`git ls-remote`)