전환 결과 검증 체크리스트 재검증 (role-reviewer-reverify-001)

This commit is contained in:
forge-bot 2026-07-14 05:24:50 +00:00
parent 0a78216e1e
commit b16a74768e

View file

@ -0,0 +1,151 @@
#!/bin/bash
# 검증 자동화 스크립트
# 프로젝트: runtime-role-reverify-202607140530
set -e
echo "=========================================="
echo " 전환 결과 검증 스크립트"
echo " 프로젝트: runtime-role-reverify-202607140530"
echo "=========================================="
echo ""
# 색상 정의
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 카운터
PASS=0
FAIL=0
WARN=0
# 결과 기록 함수
pass() {
echo -e "${GREEN}[PASS]${NC} $1"
((PASS++))
}
fail() {
echo -e "${RED}[FAIL]${NC} $1"
((FAIL++))
}
warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
((WARN++))
}
info() {
echo -e "[INFO] $1"
}
echo "=========================================="
echo " 1. 산출물 검증"
echo "=========================================="
# Java 소스 파일 존재 확인
if find . -name "*.java" -type f | grep -q .; then
JAVA_COUNT=$(find . -name "*.java" -type f | wc -l)
pass "Java 소스 파일 발견: $JAVA_COUNT개"
else
fail "Java 소스 파일 없음"
fi
# pom.xml 존재 확인
if [ -f "pom.xml" ]; then
pass "pom.xml 존재 확인"
else
fail "pom.xml 없음"
fi
# application.yml 존재 확인
if [ -f "src/main/resources/application.yml" ]; then
pass "application.yml 존재 확인"
else
warn "application.yml 없음 (선택적)"
fi
echo ""
echo "=========================================="
echo " 2. 테스트 검증"
echo "=========================================="
# 테스트 파일 존재 확인
if find . -name "*Test.java" -type f | grep -q .; then
TEST_COUNT=$(find . -name "*Test.java" -type f | wc -l)
pass "테스트 파일 발견: $TEST_COUNT개"
else
warn "테스트 파일 없음"
fi
# Maven 테스트 실행
echo "Maven 테스트 실행 중..."
if mvn test -q -DskipTests=false > /dev/null 2>&1; then
pass "Maven 테스트 성공"
else
fail "Maven 테스트 실패"
fi
echo ""
echo "=========================================="
echo " 3. CI/CD 검증"
echo "=========================================="
# GitHub Actions 워크플로우 확인
if [ -d ".github/workflows" ]; then
WORKFLOW_COUNT=$(find .github/workflows -name "*.yml" -o -name "*.yaml" | wc -l)
pass "GitHub Actions 워크플로우 발견: $WORKFLOW_COUNT개"
else
warn "GitHub Actions 워크플로우 없음"
fi
# Maven 빌드 검증
if mvn clean package -DskipTests -q > /dev/null 2>&1; then
pass "Maven 빌드 성공"
if [ -f "target/*.jar" ]; then
JAR_COUNT=$(find target -name "*.jar" | wc -l)
pass "산출 JAR 파일: $JAR_COUNT개"
fi
else
fail "Maven 빌드 실패"
fi
echo ""
echo "=========================================="
echo " 4. 운영 리스크 검증"
echo "=========================================="
# Java 버전 확인
JAVA_VERSION=$(java -version 2>&1 | head -1 | cut -d'"' -f2)
if [[ "$JAVA_VERSION" == 17* ]] || [[ "$JAVA_VERSION" == 21* ]] || [[ "$JAVA_VERSION" == 11* ]]; then
pass "Java 버전 (LTS): $JAVA_VERSION"
else
warn "Java 버전 확인 필요: $JAVA_VERSION"
fi
# Spring Boot 버전 확인 (pom.xml에서)
if grep -q "spring-boot-starter-parent" pom.xml; then
SB_VERSION=$(grep -A1 "spring-boot-starter-parent" pom.xml | grep "<version>" | sed 's/.*<version>\([^<]*\)<\/version>.*/\1/')
pass "Spring Boot 버전: $SB_VERSION"
else
warn "Spring Boot parent 없음"
fi
echo ""
echo "=========================================="
echo " 검증 결과 요약"
echo "=========================================="
echo -e "${GREEN}통과: $PASS${NC}"
echo -e "${RED}실패: $FAIL${NC}"
echo -e "${YELLOW}경고: $WARN${NC}"
echo ""
if [ $FAIL -eq 0 ]; then
echo -e "${GREEN}최종 판정: 승인${NC}"
exit 0
else
echo -e "${RED}최종 판정: 보류 (수정 필요)${NC}"
exit 1
fi