검증 체크리스트 최신 reviewer 검증 (role-reviewer-reverify-550-001)

This commit is contained in:
forge-bot 2026-07-14 05:51:40 +00:00
parent 9116c43c71
commit c35ac82348

View file

@ -0,0 +1,153 @@
#!/bin/bash
# 검증 스크립트 - runtime-role-reverify-202607140550
set -e
echo "=========================================="
echo " 검증 체크리스트 실행"
echo " 프로젝트: runtime-role-reverify-202607140550"
echo "=========================================="
echo ""
# 색상 정의
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 카운터
PASS=0
FAIL=0
SKIP=0
# 검증 함수
check_pass() {
echo -e "${GREEN}[PASS]${NC} $1"
((PASS++))
}
check_fail() {
echo -e "${RED}[FAIL]${NC} $1"
((FAIL++))
}
check_skip() {
echo -e "${YELLOW}[SKIP]${NC} $1"
((SKIP++))
}
echo "=== 1. 산출물 검증 ==="
# D-01: 소스 코드 구조
if [ -d "src/main/java" ] && [ -d "src/test/java" ]; then
check_pass "D-01: 소스 코드 구조 완전성"
else
check_fail "D-01: 소스 코드 구조 완전성"
fi
# D-02: 설정 파일
if [ -f "pom.xml" ] || [ -f "build.gradle" ]; then
check_pass "D-02: 설정 파일 존재성"
else
check_fail "D-02: 설정 파일 존재성"
fi
# D-03: 문서
if [ -f "README.md" ]; then
check_pass "D-03: 문서 존재성"
else
check_skip "D-03: 문서 존재성 (README.md 없음)"
fi
# D-04: 의존성
if [ -f "pom.xml" ]; then
if grep -q "<dependencies>" pom.xml; then
check_pass "D-04: 의존성 선언 완전성"
else
check_fail "D-04: 의존성 선언 완전성"
fi
else
check_skip "D-04: 의존성 선언 (pom.xml 없음)"
fi
# D-05: 빌드 스크립트
if [ -f "pom.xml" ] || [ -f "build.gradle" ] || [ -f "Makefile" ]; then
check_pass "D-05: 빌드 스크립트 존재"
else
check_fail "D-05: 빌드 스크립트 존재"
fi
echo ""
echo "=== 2. 테스트 검증 ==="
# T-01: 단위 테스트
if find . -name "*Test.java" -type f 2>/dev/null | grep -q .; then
check_pass "T-01: 단위 테스트 존재"
else
check_skip "T-01: 단위 테스트 존재 (테스트 파일 없음)"
fi
# T-02: 통합 테스트
if find . -name "*IT.java" -type f 2>/dev/null | grep -q . || [ -d "src/test/integration" ]; then
check_pass "T-02: 통합 테스트 존재"
else
check_skip "T-02: 통합 테스트 존재 (통합 테스트 없음)"
fi
# T-03: 테스트 자동화
if [ -f "pom.xml" ]; then
if grep -q "maven-surefire-plugin" pom.xml || grep -q "<artifactId>maven-surefire-plugin</artifactId>" pom.xml; then
check_pass "T-03: 테스트 자동화 설정"
else
check_skip "T-03: 테스트 자동화 설정 (Surefire 플러그인 없음)"
fi
else
check_skip "T-03: 테스트 자동화 (pom.xml 없음)"
fi
echo ""
echo "=== 3. CI/CD 검증 ==="
# C-01: CI 파이프라인
if [ -f ".github/workflows/ci.yml" ] || [ -f ".github/workflows/build.yml" ] || [ -f "Jenkinsfile" ] || [ -f ".gitlab-ci.yml" ]; then
check_pass "C-01: CI 파이프라인 정의 파일 존재"
else
check_skip "C-01: CI 파이프라인 정의 파일 존재 (CI 설정 없음)"
fi
echo ""
echo "=== 4. 운영 리스크 검증 ==="
# O-01: 로깅 설정
if [ -f "src/main/resources/logback.xml" ] || [ -f "src/main/resources/logback-spring.xml" ] || [ -f "src/main/resources/log4j2.xml" ]; then
check_pass "O-01: 로깅 전략 정의"
else
check_skip "O-01: 로깅 전략 정의 (로깅 설정 없음)"
fi
# O-02: 환경별 설정
if ls src/main/resources/application-*.properties src/main/resources/application-*.yml src/main/resources/application-*.yaml 2>/dev/null | grep -q .; then
check_pass "O-02: 환경별 설정 분리"
else
check_skip "O-02: 환경별 설정 분리 (프로파일 설정 없음)"
fi
echo ""
echo "=========================================="
echo " 검증 결과 요약"
echo "=========================================="
echo -e "${GREEN}통과:${NC} $PASS"
echo -e "${RED}실패:${NC} $FAIL"
echo -e "${YELLOW}건너뜀:${NC} $SKIP"
echo ""
TOTAL=$((PASS + FAIL + SKIP))
if [ $TOTAL -gt 0 ]; then
PASS_RATE=$((PASS * 100 / TOTAL))
echo "통과율: $PASS_RATE%"
fi
echo "=========================================="
# 결과 반환
exit 0