From b16a74768e474c4e3a4120b1d42072644b073b6a Mon Sep 17 00:00:00 2001 From: forge-bot Date: Tue, 14 Jul 2026 05:24:50 +0000 Subject: [PATCH] =?UTF-8?q?=EC=A0=84=ED=99=98=20=EA=B2=B0=EA=B3=BC=20?= =?UTF-8?q?=EA=B2=80=EC=A6=9D=20=EC=B2=B4=ED=81=AC=EB=A6=AC=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=9E=AC=EA=B2=80=EC=A6=9D=20(role-reviewer-reveri?= =?UTF-8?q?fy-001)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/verification/VERIFICATION_SCRIPT.sh | 151 +++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 docs/verification/VERIFICATION_SCRIPT.sh diff --git a/docs/verification/VERIFICATION_SCRIPT.sh b/docs/verification/VERIFICATION_SCRIPT.sh new file mode 100644 index 0000000..8096279 --- /dev/null +++ b/docs/verification/VERIFICATION_SCRIPT.sh @@ -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 "" | sed 's/.*\([^<]*\)<\/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