fix(ci): @rollup/rollup-darwin-arm64 직접 의존성 제거 (플랫폼 호환) #10
@ -1,5 +1,8 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/claude-code-settings.json",
|
||||
"env": {
|
||||
"CLAUDE_BOT_TOKEN": "ac15488ad66463bd5c4e3be1fa6dd5b2743813c5"
|
||||
},
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Bash(npm run *)",
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
---
|
||||
name: create-mr
|
||||
description: 현재 브랜치에서 Gitea MR(Merge Request)을 생성합니다
|
||||
allowed-tools: "Bash, Read, Grep"
|
||||
argument-hint: "[target-branch: develop|main] (기본: develop)"
|
||||
---
|
||||
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
---
|
||||
name: fix-issue
|
||||
description: Gitea 이슈를 분석하고 수정 브랜치를 생성합니다
|
||||
allowed-tools: "Bash, Read, Write, Edit, Glob, Grep"
|
||||
argument-hint: "<issue-number>"
|
||||
---
|
||||
|
||||
|
||||
@ -2,5 +2,6 @@
|
||||
"applied_global_version": "1.6.1",
|
||||
"applied_date": "2026-03-17",
|
||||
"project_type": "react-ts",
|
||||
"gitea_url": "https://gitea.gc-si.dev"
|
||||
"gitea_url": "https://gitea.gc-si.dev",
|
||||
"custom_pre_commit": true
|
||||
}
|
||||
|
||||
@ -25,8 +25,7 @@ jobs:
|
||||
env:
|
||||
VITE_GOOGLE_CLIENT_ID: ${{ secrets.GOOGLE_CLIENT_ID }}
|
||||
run: |
|
||||
rm -f package-lock.json
|
||||
npm install
|
||||
npm ci
|
||||
npx vite build
|
||||
|
||||
- name: Deploy frontend
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
#==============================================================================
|
||||
|
||||
COMMIT_MSG_FILE="$1"
|
||||
COMMIT_MSG=$(cat "$COMMIT_MSG_FILE")
|
||||
COMMIT_MSG=$(head -1 "$COMMIT_MSG_FILE")
|
||||
|
||||
# Merge 커밋은 검증 건너뜀
|
||||
if echo "$COMMIT_MSG" | head -1 | grep -qE "^Merge "; then
|
||||
|
||||
@ -1,88 +1,63 @@
|
||||
#!/bin/bash
|
||||
#==============================================================================
|
||||
# pre-commit hook (모노레포: Frontend + Backend)
|
||||
# Frontend: TypeScript 컴파일 + 린트 검증
|
||||
# Backend: Maven 컴파일 검증
|
||||
# 실패 시 커밋 차단
|
||||
# pre-commit hook (모노레포: frontend/)
|
||||
# TypeScript 컴파일 + 린트 검증 — 실패 시 커밋 차단
|
||||
#==============================================================================
|
||||
|
||||
FAILED=0
|
||||
FRONTEND_DIR="frontend"
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Frontend 검증
|
||||
#------------------------------------------------------------------------------
|
||||
if [ -d "frontend" ]; then
|
||||
echo "pre-commit: [Frontend] TypeScript 타입 체크 중..."
|
||||
|
||||
if ! command -v npx &>/dev/null; then
|
||||
echo "경고: npx가 설치되지 않았습니다. Frontend 검증을 건너뜁니다."
|
||||
elif [ ! -d "frontend/node_modules" ]; then
|
||||
echo "경고: frontend/node_modules가 없습니다. 'cd frontend && npm install' 실행 후 다시 시도하세요."
|
||||
FAILED=1
|
||||
else
|
||||
(cd frontend && npx tsc --noEmit --pretty 2>&1)
|
||||
TSC_RESULT=$?
|
||||
|
||||
if [ $TSC_RESULT -ne 0 ]; then
|
||||
echo ""
|
||||
echo "╔══════════════════════════════════════════════════════════╗"
|
||||
echo "║ [Frontend] TypeScript 타입 에러! 커밋이 차단되었습니다.║"
|
||||
echo "╚══════════════════════════════════════════════════════════╝"
|
||||
FAILED=1
|
||||
else
|
||||
echo "pre-commit: [Frontend] 타입 체크 성공"
|
||||
fi
|
||||
|
||||
# ESLint 검증
|
||||
if [ -f "frontend/eslint.config.js" ] || [ -f "frontend/eslint.config.mjs" ] || [ -f "frontend/.eslintrc.js" ] || [ -f "frontend/.eslintrc.json" ]; then
|
||||
echo "pre-commit: [Frontend] ESLint 검증 중..."
|
||||
(cd frontend && npx eslint src/ --ext .ts,.tsx --quiet 2>&1)
|
||||
LINT_RESULT=$?
|
||||
|
||||
if [ $LINT_RESULT -ne 0 ]; then
|
||||
echo ""
|
||||
echo "╔══════════════════════════════════════════════════════════╗"
|
||||
echo "║ [Frontend] ESLint 에러! 커밋이 차단되었습니다. ║"
|
||||
echo "╚══════════════════════════════════════════════════════════╝"
|
||||
FAILED=1
|
||||
else
|
||||
echo "pre-commit: [Frontend] ESLint 통과"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
# frontend 디렉토리 없으면 건너뜀
|
||||
if [ ! -d "$FRONTEND_DIR" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Backend 검증
|
||||
#------------------------------------------------------------------------------
|
||||
if [ -d "backend" ] && [ -f "backend/pom.xml" ]; then
|
||||
echo "pre-commit: [Backend] Maven 컴파일 검증 중..."
|
||||
echo "pre-commit: TypeScript 타입 체크 중..."
|
||||
|
||||
if ! command -v mvn &>/dev/null; then
|
||||
echo "경고: mvn이 설치되지 않았습니다. Backend 검증을 건너뜁니다."
|
||||
else
|
||||
(cd backend && mvn compile -q 2>&1)
|
||||
MVN_RESULT=$?
|
||||
|
||||
if [ $MVN_RESULT -ne 0 ]; then
|
||||
echo ""
|
||||
echo "╔══════════════════════════════════════════════════════════╗"
|
||||
echo "║ [Backend] Maven 컴파일 에러! 커밋이 차단되었습니다. ║"
|
||||
echo "╚══════════════════════════════════════════════════════════╝"
|
||||
FAILED=1
|
||||
else
|
||||
echo "pre-commit: [Backend] 컴파일 성공"
|
||||
fi
|
||||
fi
|
||||
# npm 확인
|
||||
if ! command -v npx &>/dev/null; then
|
||||
echo "경고: npx가 설치되지 않았습니다. 검증을 건너뜁니다."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# 결과
|
||||
#------------------------------------------------------------------------------
|
||||
if [ $FAILED -ne 0 ]; then
|
||||
echo ""
|
||||
echo "pre-commit: 검증 실패! 에러를 수정한 후 다시 커밋해주세요."
|
||||
# node_modules 확인
|
||||
if [ ! -d "${FRONTEND_DIR}/node_modules" ]; then
|
||||
echo "경고: ${FRONTEND_DIR}/node_modules가 없습니다. 'cd ${FRONTEND_DIR} && npm install' 실행 후 다시 시도하세요."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "pre-commit: 모든 검증 통과"
|
||||
# TypeScript 타입 체크 (frontend 디렉토리에서 실행)
|
||||
(cd "${FRONTEND_DIR}" && npx tsc --noEmit --pretty 2>&1)
|
||||
TSC_RESULT=$?
|
||||
|
||||
if [ $TSC_RESULT -ne 0 ]; then
|
||||
echo ""
|
||||
echo "╔══════════════════════════════════════════════════════════╗"
|
||||
echo "║ TypeScript 타입 에러! 커밋이 차단되었습니다. ║"
|
||||
echo "║ 타입 에러를 수정한 후 다시 커밋해주세요. ║"
|
||||
echo "╚══════════════════════════════════════════════════════════╝"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "pre-commit: 타입 체크 성공"
|
||||
|
||||
# ESLint 검증 (설정 파일이 있는 경우만)
|
||||
(cd "${FRONTEND_DIR}" && {
|
||||
if [ -f "eslint.config.js" ] || [ -f "eslint.config.mjs" ] || [ -f ".eslintrc.js" ] || [ -f ".eslintrc.json" ]; then
|
||||
echo "pre-commit: ESLint 검증 중..."
|
||||
npx eslint src/ --ext .ts,.tsx --quiet 2>&1
|
||||
LINT_RESULT=$?
|
||||
|
||||
if [ $LINT_RESULT -ne 0 ]; then
|
||||
echo ""
|
||||
echo "╔══════════════════════════════════════════════════════════╗"
|
||||
echo "║ ESLint 에러! 커밋이 차단되었습니다. ║"
|
||||
echo "║ 'npm run lint -- --fix'로 자동 수정을 시도해보세요. ║"
|
||||
echo "╚══════════════════════════════════════════════════════════╝"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "pre-commit: ESLint 통과"
|
||||
fi
|
||||
})
|
||||
|
||||
@ -4,6 +4,11 @@
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### 수정
|
||||
- CI 빌드 실패 해결: `@rollup/rollup-darwin-arm64` 직접 의존성 제거 (플랫폼별 optional 자동 관리)
|
||||
- CI 워크플로우 `npm ci` 복원 (lockfile 기반 정확한 설치)
|
||||
- 모노레포 pre-commit hook `frontend/` 디렉토리 기준 실행
|
||||
|
||||
## [2026-03-17]
|
||||
|
||||
### 추가
|
||||
|
||||
733
frontend/package-lock.json
generated
733
frontend/package-lock.json
generated
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
Load Diff
@ -10,7 +10,6 @@
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"@rollup/rollup-darwin-arm64": "^4.59.0",
|
||||
"@tailwindcss/vite": "^4.2.1",
|
||||
"@types/leaflet": "^1.9.21",
|
||||
"date-fns": "^4.1.0",
|
||||
|
||||
불러오는 중...
Reference in New Issue
Block a user