Files
zellyy-finance/.github/workflows/deployment-monitor.yml
hansoo 4d9effce41 fix: ESLint 오류 수정 - 사용하지 않는 변수들에 underscore prefix 추가
- AddTransactionButton.tsx: useEffect import 제거
- BudgetProgressCard.tsx: localBudgetData를 _localBudgetData로 변경
- Header.tsx: isMobile을 _isMobile로 변경
- RecentTransactionsSection.tsx: isDeleting을 _isDeleting로 변경
- TransactionCard.tsx: cn import 제거
- ExpenseForm.tsx: useState import 제거
- cacheStrategies.ts: QueryClient, Transaction import 제거
- Analytics.tsx: Separator import 제거, 미사용 변수들에 underscore prefix 추가
- Index.tsx: useMemo import 제거
- Login.tsx: setLoginError를 _setLoginError로 변경
- Register.tsx: useEffect dependency 수정 및 useCallback 추가
- Settings.tsx: toast, handleClick에 underscore prefix 추가
- authStore.ts: setError, setAppwriteInitialized에 underscore prefix 추가
- budgetStore.ts: ranges를 _ranges로 변경
- BudgetProgressCard.test.tsx: waitFor import 제거

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 20:49:36 +09:00

117 lines
3.6 KiB
YAML

name: Deployment Monitor
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
pre-deployment-check:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: 🔍 Pre-deployment checks
run: |
echo "🏗️ 배포 전 검사를 시작합니다..."
# 빌드 크기 분석
npm run build
# dist 폴더 크기 확인
DIST_SIZE=$(du -sh dist | cut -f1)
echo "📦 빌드 크기: $DIST_SIZE"
# 주요 청크 파일 크기 확인
echo "📊 주요 청크 파일 크기:"
find dist/assets -name "*.js" -exec ls -lh {} \; | awk '{print $5 " " $9}' | sort -hr | head -10
echo "✅ 빌드 분석 완료"
- name: 🧪 성능 체크
run: |
# JavaScript 파일 개수 확인
JS_COUNT=$(find dist/assets -name "*.js" | wc -l)
CSS_COUNT=$(find dist/assets -name "*.css" | wc -l)
echo "📁 생성된 파일:"
echo " - JavaScript 파일: $JS_COUNT 개"
echo " - CSS 파일: $CSS_COUNT 개"
# 대용량 파일 경고
find dist/assets -name "*.js" -size +500k -exec echo "⚠️ 대용량 JS 파일 발견: {}" \;
find dist/assets -name "*.css" -size +100k -exec echo "⚠️ 대용량 CSS 파일 발견: {}" \;
- name: 📊 번들 분석 결과 저장
uses: actions/upload-artifact@v4
with:
name: bundle-analysis
path: |
dist/
retention-days: 7
deployment-notification:
runs-on: ubuntu-latest
needs: pre-deployment-check
if: github.ref == 'refs/heads/main'
steps:
- name: 🚀 Production 배포 알림
run: |
echo "🎯 프로덕션 배포가 시작됩니다!"
echo "📅 시간: $(date)"
echo "👤 작성자: ${{ github.actor }}"
echo "📝 커밋: ${{ github.sha }}"
echo "🔗 Vercel 대시보드에서 배포 상태를 확인하세요."
security-scan:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: 🔒 보안 스캔
run: |
echo "🔍 보안 취약점 검사를 시작합니다..."
# npm audit
if npm audit --audit-level=moderate; then
echo "✅ 보안 취약점이 발견되지 않았습니다."
else
echo "⚠️ 보안 취약점이 발견되었습니다. 검토가 필요합니다."
fi
# 환경 변수 누출 검사
echo "🔍 환경 변수 누출 검사..."
if grep -r "VITE_.*=" dist/ --include="*.js" --include="*.css" 2>/dev/null; then
echo "⚠️ 빌드 파일에서 환경 변수가 발견되었습니다."
else
echo "✅ 환경 변수 누출이 발견되지 않았습니다."
fi
- name: 📋 보안 스캔 결과
run: |
echo "🛡️ 보안 스캔이 완료되었습니다."
echo "배포 전 보안 검사가 통과되었습니다."