전환 결과 검증 체크리스트 재검증 (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