feat: add health check #2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Deploy Mission AI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Copy files to EC2 | |
| uses: appleboy/scp-action@v0.1.7 | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_KEY }} | |
| port: 22 | |
| source: "./" | |
| target: "/home/ubuntu/mission-ai" | |
| - name: Upload .env file | |
| uses: appleboy/ssh-action@v1.0.3 | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_KEY }} | |
| port: 22 | |
| script: | | |
| echo "${{ secrets.ENV_FILE }}" > /home/ubuntu/mission-ai/.env | |
| - name: Create startup script | |
| uses: appleboy/ssh-action@v1.0.3 | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_KEY }} | |
| port: 22 | |
| script: | | |
| # 시작 스크립트 생성 | |
| cat > /home/ubuntu/start_mission_ai.sh << 'EOF' | |
| #!/bin/bash | |
| cd /home/ubuntu/mission-ai | |
| python3 -m venv venv 2>/dev/null || true | |
| source venv/bin/activate | |
| pip install -r requirements.txt | |
| # 기존 Mission AI 프로세스 종료 | |
| pkill -f "uvicorn.*mission:app" || true | |
| sleep 3 | |
| # Mission AI 서버 실행 | |
| nohup uvicorn mission:app --host 0.0.0.0 --port 6000 > mission_ai.log 2>&1 & | |
| echo $! > mission_ai.pid | |
| echo "미션 AI 서버가 시작되었습니다. PID: $(cat mission_ai.pid)" | |
| EOF | |
| chmod +x /home/ubuntu/start_mission_ai.sh | |
| - name: Start Mission AI | |
| uses: appleboy/ssh-action@v1.0.3 | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_KEY }} | |
| port: 22 | |
| script: | | |
| nohup /home/ubuntu/start_mission_ai.sh > /tmp/deploy_mission_ai.log 2>&1 & | |
| sleep 10 | |
| if [ -f /home/ubuntu/mission-ai/mission_ai.pid ]; then | |
| PID=$(cat /home/ubuntu/mission-ai/mission_ai.pid) | |
| if ps -p $PID > /dev/null; then | |
| echo "✅ Mission AI 서버 시작 성공! PID: $PID" | |
| else | |
| echo "❌ Mission AI 서버 시작 실패" | |
| cat /home/ubuntu/mission-ai/mission_ai.log 2>/dev/null || echo "로그 없음" | |
| fi | |
| else | |
| echo "❌ PID 파일이 생성되지 않았습니다" | |
| cat /tmp/deploy_mission_ai.log 2>/dev/null || echo "배포 로그 없음" | |
| fi |