@@ -3,54 +3,74 @@ name: Deploy to EC2
33on :
44 pull_request :
55 types : [closed]
6- branches : [main, develop]
6+ branches : [main] # main 브랜치만 배포
7+
8+ env :
9+ DOCKER_CONTAINER_NAME : coplan-app
710
811jobs :
9- deploy :
12+ warmup :
13+ # 🛡️ 머지된 경우에만 실행
1014 if : github.event.pull_request.merged == true
1115 runs-on : self-hosted
12- timeout-minutes : 15
16+ timeout-minutes : 3
17+ steps :
18+ - name : Environment check
19+ run : |
20+ echo "=== Deployment System Check ==="
21+ echo "📋 Merged PR: ${{ github.event.pull_request.title }}"
22+ echo "👤 Author: ${{ github.event.pull_request.user.login }}"
23+ echo "🔄 From: ${{ github.event.pull_request.head.ref }} → ${{ github.event.pull_request.base.ref }}"
24+ echo "📝 Commit: ${{ github.event.pull_request.merge_commit_sha }}"
25+ echo ""
26+ echo "🖥️ System Status:"
27+ whoami
28+ docker --version
29+ free -h
30+ echo ""
31+ echo "🐳 Container Status:"
32+ docker ps
1333
34+ deploy :
35+ needs : warmup
36+ runs-on : self-hosted
37+ timeout-minutes : 10
1438 steps :
1539 - name : Checkout code
16- uses : actions/checkout@v3
40+ uses : actions/checkout@v4
1741
18- - name : Deploy to EC2
42+ - name : Execute deployment script
1943 run : |
2044 echo "🚀 Starting deployment..."
2145 echo "🔄 Branch: ${{ github.ref_name }}"
2246 echo "🔄 Commit: ${{ github.sha }}"
47+ echo "📦 PR: #${{ github.event.pull_request.number }}"
2348
24- # 메모리 정리
25- echo "🧹 Cleaning up memory..."
26- docker system prune -f
27-
28- # 앱 디렉토리로 코드 복사
29- echo "📂 Copying files..."
30- rsync -av --delete \
31- --exclude='.git' \
32- --exclude='node_modules' \
33- --exclude='.next' \
34- ./ /home/ubuntu/coplan/app/
35-
36- # 배포 디렉토리로 이동
49+ # deploy.sh 실행
3750 cd /home/ubuntu/coplan
51+ chmod +x ./deploy.sh
52+ ./deploy.sh
3853
39- # Docker 컨테이너 재시작
40- echo "🔄 Restarting containers..."
41- docker compose down
42- docker compose up -d --build
43-
44- # 헬스체크
54+ - name : Health check
55+ run : |
4556 echo "🏥 Health checking..."
4657 sleep 15
4758
48- if docker ps | grep -q coplan-app ; then
59+ if docker ps | grep -q $DOCKER_CONTAINER_NAME ; then
4960 echo "✅ Deployment completed successfully!"
50- docker logs --tail 10 coplan-app
51- echo "🌐 Service available at: http://15.164.127.149"
61+ echo "📊 Container status:"
62+ docker ps | grep $DOCKER_CONTAINER_NAME
63+ echo ""
64+ echo "📝 Recent logs:"
65+ docker logs --tail 5 $DOCKER_CONTAINER_NAME
66+ echo ""
67+ echo "🌐 Service available at: https://coplan.work"
5268 else
5369 echo "❌ Deployment failed!"
54- docker logs coplan-app
70+ echo "🔍 Checking container logs..."
71+ docker logs $DOCKER_CONTAINER_NAME 2>/dev/null || echo "No container logs available"
72+ echo "🔍 Checking system status..."
73+ docker ps -a
74+ free -h
5575 exit 1
5676 fi
0 commit comments