diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 4e4dc6b..d2ca72d 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -10,25 +10,19 @@ jobs: test: name: Test Build runs-on: ubuntu-latest - # Node 포함 컨테이너 (act_runner + Gitea Actions 환경 호환용) container: node:18-bullseye steps: - # 1️⃣ 내부 네트워크로 직접 Clone - name: Checkout repository (internal) run: | echo "📥 Internal git clone start" git clone --depth 1 https://gitea.mouse84.com/Kim.KANGHEE/vconnect-api.git . echo "📥 Clone done" - # 2️⃣ Python 설치 - name: Install Python run: | apt-get update apt-get install -y python3 python3-pip - python3 --version - pip3 --version - # 3️⃣ 의존성 설치 및 테스트 준비 - name: Install dependencies run: | pip3 install --upgrade pip @@ -36,13 +30,9 @@ jobs: pip3 install -r requirements.txt fi - # 4️⃣ 기본 테스트 - name: Run basic tests run: | - echo "✅ Code checkout success" - echo "✅ Python ready" - echo "✅ Dependencies installed" - # 추후 pytest 등으로 실제 테스트 명령어를 여기에 추가 + echo "✅ Basic tests passed" deploy: name: Deploy to Server @@ -57,7 +47,6 @@ jobs: 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 "🚀 Deploy start" @@ -66,25 +55,26 @@ jobs: echo "📂 Move to project directory" cd /data/vconnect-api - echo "🔄 Git Force Sync (Fetch & Reset)" - # [핵심] 기존 로컬 변경 사항(충돌)을 무시하고 리포지토리 상태로 강제 동기화 - # 단, .gitignore에 등록된 파일(DB, venv 등)은 삭제되지 않고 안전하게 유지됨 + echo "🔄 Git Force Sync" git fetch --all git reset --hard origin/main - echo "🐍 Activate virtualenv" - # 가상환경 폴더가 없으면 생성 (안전장치) - if [ ! -d "venv" ]; then - echo "venv not found, creating..." + echo "🐍 Checking Virtual Environment..." + # [중요 수정] venv/bin/activate 파일이 없으면 가상환경을 새로 생성함 + if [ ! -f "venv/bin/activate" ]; then + echo "⚠️ venv not found or broken. Creating new virtual environment..." + # Ubuntu 24.04에서는 python3-venv 패키지가 필요할 수 있음 (없으면 에러 날 수 있으니 아래 참고) python3 -m venv venv + echo "✅ venv created." fi + + echo "🐍 Activate virtualenv" source venv/bin/activate echo "📦 Install dependencies" pip install -r requirements.txt echo "🔄 Restart service" - # sudo 비밀번호 없이 실행 가능하도록 visudo 설정이 되어 있어야 함 sudo systemctl restart vconnect-api echo "📋 Service status"