전환 결과 검증 체크리스트 재검증 (role-reviewer-reverify-001)
This commit is contained in:
parent
0a78216e1e
commit
b16a74768e
1 changed files with 151 additions and 0 deletions
151
docs/verification/VERIFICATION_SCRIPT.sh
Normal file
151
docs/verification/VERIFICATION_SCRIPT.sh
Normal 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
|
||||||
Loading…
Add table
Add a link
Reference in a new issue