Reviewer 역할 검증 보고서 smoke #7
1 changed files with 136 additions and 0 deletions
136
scripts/smoke-test.sh
Normal file
136
scripts/smoke-test.sh
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
#!/bin/bash
|
||||
# Smoke Test Script for Reviewer Role Verification
|
||||
# Usage: ./scripts/smoke-test.sh
|
||||
|
||||
set -e
|
||||
|
||||
echo "=========================================="
|
||||
echo "Smoke Test - Reviewer Role Verification"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# 색상 정의
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# 카운터
|
||||
PASS=0
|
||||
FAIL=0
|
||||
|
||||
# 결과 체크 함수
|
||||
check_result() {
|
||||
if [ $1 -eq 0 ]; then
|
||||
echo -e "${GREEN}✓ PASS${NC}: $2"
|
||||
((PASS++))
|
||||
else
|
||||
echo -e "${RED}✗ FAIL${NC}: $2"
|
||||
((FAIL++))
|
||||
fi
|
||||
}
|
||||
|
||||
echo "[1/5] 변경 파일 검증"
|
||||
echo "------------------------------------------"
|
||||
if [ -d ".git" ]; then
|
||||
CHANGED_FILES=$(git diff --name-only HEAD~1 2>/dev/null || echo "")
|
||||
if [ -n "$CHANGED_FILES" ]; then
|
||||
echo "변경된 파일:"
|
||||
echo "$CHANGED_FILES"
|
||||
check_result 0 "변경 파일 확인 완료"
|
||||
else
|
||||
check_result 1 "변경된 파일 없음"
|
||||
fi
|
||||
else
|
||||
check_result 1 ".git 디렉토리 없음"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
echo "[2/5] 테스트 검증"
|
||||
echo "------------------------------------------"
|
||||
if [ -f "pom.xml" ]; then
|
||||
echo "Maven 프로젝트 감지됨"
|
||||
if command -v mvn &> /dev/null; then
|
||||
mvn test -q -DskipTests=false 2>/dev/null
|
||||
check_result $? "Maven 테스트 실행"
|
||||
else
|
||||
echo -e "${YELLOW}! SKIP${NC}: Maven 미설치"
|
||||
fi
|
||||
elif [ -f "package.json" ]; then
|
||||
echo "Node.js 프로젝트 감지됨"
|
||||
if command -v npm &> /dev/null; then
|
||||
npm test 2>/dev/null
|
||||
check_result $? "npm 테스트 실행"
|
||||
else
|
||||
echo -e "${YELLOW}! SKIP${NC}: npm 미설치"
|
||||
fi
|
||||
else
|
||||
echo -e "${YELLOW}! SKIP${NC}: 빌드 파일 없음"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
echo "[3/5] CI 설정 검증"
|
||||
echo "------------------------------------------"
|
||||
if [ -d ".github/workflows" ]; then
|
||||
CI_FILES=$(find .github/workflows -name "*.yml" -o -name "*.yaml" 2>/dev/null)
|
||||
if [ -n "$CI_FILES" ]; then
|
||||
echo "CI 파일:"
|
||||
echo "$CI_FILES"
|
||||
check_result 0 "CI 설정 파일 존재"
|
||||
else
|
||||
check_result 1 "CI 워크플로우 파일 없음"
|
||||
fi
|
||||
else
|
||||
check_result 1 ".github/workflows 디렉토리 없음"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
echo "[4/5] 컴파일 검증"
|
||||
echo "------------------------------------------"
|
||||
if [ -f "pom.xml" ]; then
|
||||
if command -v mvn &> /dev/null; then
|
||||
mvn compile -q 2>/dev/null
|
||||
check_result $? "Maven 컴파일"
|
||||
else
|
||||
echo -e "${YELLOW}! SKIP${NC}: Maven 미설치"
|
||||
fi
|
||||
elif [ -f "package.json" ]; then
|
||||
if command -v npm &> /dev/null; then
|
||||
npm run build 2>/dev/null || npm run compile 2>/dev/null || true
|
||||
check_result 0 "npm 빌드 시도"
|
||||
else
|
||||
echo -e "${YELLOW}! SKIP${NC}: npm 미설치"
|
||||
fi
|
||||
else
|
||||
echo -e "${YELLOW}! SKIP${NC}: 빌드 파일 없음"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
echo "[5/5] 보안 검사"
|
||||
echo "------------------------------------------"
|
||||
if [ -f "pom.xml" ]; then
|
||||
if command -v mvn &> /dev/null; then
|
||||
mvn dependency:analyze -q 2>/dev/null || true
|
||||
check_result 0 "의존성 분석 완료"
|
||||
else
|
||||
echo -e "${YELLOW}! SKIP${NC}: Maven 미설치"
|
||||
fi
|
||||
else
|
||||
echo -e "${YELLOW}! SKIP${NC}: 빌드 파일 없음"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
echo "=========================================="
|
||||
echo "결과 요약"
|
||||
echo "=========================================="
|
||||
echo -e "${GREEN}통과: $PASS${NC}"
|
||||
echo -e "${RED}실패: $FAIL${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