diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 8675e9a..14d774d 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -20,32 +20,61 @@ jobs: # 배포 λ‘œκΉ… echo "πŸš€ Starting deployment..." echo "πŸ“ PR: #${{ github.event.pull_request.number }}" + echo "πŸ”„ Commit: ${{ github.sha }}" # λΈŒλžœμΉ˜λ³„ ν™˜κ²½ μ„€μ • if [ "${{ github.event.pull_request.base.ref }}" = "main" ]; then CONTAINER_NAME="app-prod" + ENV_FILE="app-prod.env" echo "πŸš€ Deploying to PRODUCTION" elif [ "${{ github.event.pull_request.base.ref }}" = "develop" ]; then CONTAINER_NAME="app-dev" + ENV_FILE="app-dev.env" echo "πŸ§ͺ Deploying to DEVELOPMENT" fi - # μ½”λ“œ 볡사 - cp -r . /home/ubuntu/coplan/app/ + # 배포 디렉토리 μ„€μ • + DEPLOY_DIR="/home/ubuntu/coplan/app" + + # rsync둜 파일 동기화 + echo "πŸ“‚ Synchronizing files..." + rsync -av \ + --exclude='.git' \ + --exclude='node_modules' \ + --exclude='.next' \ + --exclude='.env*' \ + --exclude='*.log' \ + --delete \ + ./ ${DEPLOY_DIR}/ + + # μž‘μ—… 디렉토리 이동 cd /home/ubuntu/coplan # ν™˜κ²½λ³€μˆ˜ 파일 볡사 (μžˆλŠ” 경우만) - if [ -f "/home/ubuntu/env/${CONTAINER_NAME}.env" ]; then + if [ -f "/home/ubuntu/env/${ENV_FILE}" ]; then echo "πŸ“‹ Copying environment variables..." - cp /home/ubuntu/env/${CONTAINER_NAME}.env ./app/.env.production + cp "/home/ubuntu/env/${ENV_FILE}" "${DEPLOY_DIR}/.env.production" fi - # λΉŒλ“œ 및 배포 - docker compose build $CONTAINER_NAME - docker compose up -d --no-deps --build $CONTAINER_NAME + # Docker 이미지 λΉŒλ“œ + echo "πŸ”¨ Building Docker image..." + docker compose build ${CONTAINER_NAME} + + # μ»¨ν…Œμ΄λ„ˆ ꡐ체 (무쀑단 배포) + echo "πŸ”„ Updating container..." + docker compose up -d --no-deps ${CONTAINER_NAME} - # κ°„λ‹¨ν•œ ν—¬μŠ€μ²΄ν¬ + # ν—¬μŠ€μ²΄ν¬ + echo "πŸ₯ Health check..." sleep 10 - docker ps | grep $CONTAINER_NAME - echo "βœ… Deployment completed!" + if docker ps | grep -q ${CONTAINER_NAME}; then + echo "βœ… Container is running" + docker logs --tail 20 ${CONTAINER_NAME} + else + echo "❌ Container failed to start" + docker logs ${CONTAINER_NAME} + exit 1 + fi + + echo "βœ… Deployment completed successfully!"