From 9412f72cb36119f064619a6fca8a4f1a0d13d5e4 Mon Sep 17 00:00:00 2001 From: "Kim.KANGHEE" Date: Sat, 13 Dec 2025 22:28:57 +0900 Subject: [PATCH] Update .gitea/workflows/deploy.yml --- .gitea/workflows/deploy.yml | 57 ++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 20 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 63e0bf2..f76d59d 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -1,4 +1,5 @@ name: Deploy VConnect API + on: push: branches: @@ -9,8 +10,12 @@ jobs: test: name: Test Build runs-on: ubuntu-latest + + # Node 기반 컨테이너 (checkout 액션 필수) container: node:18-bullseye + steps: + # 1️⃣ Checkout (최소 옵션으로 최적화) - name: Checkout code uses: actions/checkout@v3 with: @@ -18,6 +23,7 @@ jobs: submodules: false lfs: false + # 2️⃣ Python 설치 - name: Install Python run: | apt-get update @@ -25,52 +31,63 @@ jobs: python3 --version pip3 --version + # 3️⃣ 의존성 설치 - name: Install dependencies run: | pip3 install --upgrade pip - if [ -f requirements.txt ]; then pip3 install -r requirements.txt; fi + if [ -f requirements.txt ]; then + pip3 install -r requirements.txt + fi + # 4️⃣ 기본 테스트 - name: Run basic tests run: | echo "✅ 코드 체크아웃 성공" - echo "✅ 의존성 설치 성공" + echo "✅ Python 환경 준비 완료" + echo "✅ 의존성 설치 완료" deploy: name: Deploy to Server runs-on: ubuntu-latest + needs: test if: github.ref == 'refs/heads/main' + steps: - name: Deploy via SSH run: | - # SSH 키 설정 + set -e + + echo "🔐 SSH 설정 중..." mkdir -p ~/.ssh echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan -H 192.168.0.97 >> ~/.ssh/known_hosts - - # 서버에 배포 + + echo "🚀 서버 배포 시작" ssh kdesk84@192.168.0.97 << 'EOF' - echo "=== VConnect API 배포 시작 ===" + set -e + + echo "📂 프로젝트 디렉토리 이동" cd /data/vconnect-api - - # Git Pull - echo "📦 최신 코드 가져오기..." + + echo "📦 최신 코드 가져오기" git pull origin main - - # 가상환경에서 의존성 업데이트 - echo "📦 의존성 업데이트..." + + echo "🐍 가상환경 활성화" source venv/bin/activate + + echo "📦 의존성 업데이트" pip install -r requirements.txt - - # 서비스 재시작 - echo "🔄 서비스 재시작..." + + echo "🔄 서비스 재시작" sudo systemctl restart vconnect-api - - # 상태 확인 - echo "✅ 배포 완료! 서비스 상태:" + + echo "📋 서비스 상태 확인" sudo systemctl status vconnect-api --no-pager -l + + echo "✅ 배포 완료" EOF - + - name: Deployment Complete - run: echo "🎉 VConnect API 배포 완료!" \ No newline at end of file + run: echo "🎉 VConnect API 배포 완료!"