diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..71bd81b --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,92 @@ +name: Deploy VConnect API + +on: + push: + branches: + - main + workflow_dispatch: + +jobs: + test: + name: Test Build + runs-on: ubuntu-latest + + # Node 포함 컨테이너 (act_runner + Gitea Actions 필수) + container: node:18-bullseye + + steps: + # 1️⃣ 내부 네트워크로 직접 Clone (checkout 액션 제거) + - 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 + if [ -f requirements.txt ]; then + pip3 install -r requirements.txt + fi + + # 4️⃣ 기본 테스트 (지금은 echo, 이후 pytest 등으로 교체 가능) + - name: Run basic tests + run: | + echo "✅ Code checkout success" + echo "✅ Python ready" + echo "✅ Dependencies installed" + + deploy: + name: Deploy to Server + runs-on: ubuntu-latest + + needs: test + if: github.ref == 'refs/heads/main' + + steps: + - name: Deploy via SSH + run: | + set -e + + echo "🔐 SSH key setup" + 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" + ssh kdesk84@192.168.0.97 << 'EOF' + set -e + + echo "📂 Move to project directory" + cd /data/vconnect-api + + echo "📦 Git pull" + git pull origin main + + echo "🐍 Activate virtualenv" + source venv/bin/activate + + echo "📦 Install dependencies" + pip install -r requirements.txt + + echo "🔄 Restart service" + sudo systemctl restart vconnect-api + + echo "📋 Service status" + sudo systemctl status vconnect-api --no-pager -l + + echo "✅ Deploy finished" + EOF + + - name: Deployment Complete + run: echo "🎉 VConnect API deployment completed!" \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8932f3e --- /dev/null +++ b/.gitignore @@ -0,0 +1,32 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python + +# Virtual Environment +venv/ +env/ +ENV/ + +# Database +*.db +*.sqlite3 + +# IDE +.vscode/ +.idea/ +*.swp +*.swo + +# Environment variables +.env +.env.local + +# Logs +*.log + +# OS +.DS_Store +Thumbs.db \ No newline at end of file