ci: deploy.yml 원본 복원 + SMTP/마이그레이션만 추가
Deploy momo-erp to production / deploy (push) Failing after 4s

This commit is contained in:
chpark
2026-04-25 21:24:42 +09:00
parent c9a806583a
commit 0b6def8cda
+18 -49
View File
@@ -9,20 +9,15 @@ jobs:
deploy: deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Verify required secrets - name: Checkout code
run: | uses: actions/checkout@v4
[ -n "${{ secrets.DEPLOY_SSH_KEY }}" ] || { echo "::error::DEPLOY_SSH_KEY secret 누락"; exit 1; }
[ -n "${{ secrets.DEPLOY_HOST }}" ] || { echo "::error::DEPLOY_HOST secret 누락"; exit 1; }
[ -n "${{ secrets.DEPLOY_USER }}" ] || { echo "::error::DEPLOY_USER secret 누락"; exit 1; }
[ -n "${{ secrets.DATABASE_URL }}" ] || { echo "::error::DATABASE_URL secret 누락"; exit 1; }
echo "✔ secrets present"
- name: Setup SSH - name: Setup SSH
run: | run: |
mkdir -p ~/.ssh mkdir -p ~/.ssh
printf '%s\n' "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/id_rsa echo "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa
ssh-keyscan -H "${{ secrets.DEPLOY_HOST }}" >> ~/.ssh/known_hosts 2>/dev/null || true ssh-keyscan -H ${{ secrets.DEPLOY_HOST }} >> ~/.ssh/known_hosts 2>/dev/null
- name: Deploy via SSH - name: Deploy via SSH
env: env:
@@ -33,42 +28,18 @@ jobs:
NEXTAUTH_SECRET: ${{ secrets.NEXTAUTH_SECRET }} NEXTAUTH_SECRET: ${{ secrets.NEXTAUTH_SECRET }}
MASTER_PWD: ${{ secrets.MASTER_PWD }} MASTER_PWD: ${{ secrets.MASTER_PWD }}
AES_KEY: ${{ secrets.AES_KEY }} AES_KEY: ${{ secrets.AES_KEY }}
SMTP_HOST: ${{ secrets.SMTP_HOST }}
SMTP_PORT: ${{ secrets.SMTP_PORT }}
SMTP_USER: ${{ secrets.SMTP_USER }}
SMTP_PASS: ${{ secrets.SMTP_PASS }}
SMTP_FROM: ${{ secrets.SMTP_FROM }}
MOMO_BANK_ACCOUNT: ${{ secrets.MOMO_BANK_ACCOUNT }}
MOMO_PHONE: ${{ secrets.MOMO_PHONE }}
run: | run: |
# 환경변수를 원격 셸로 전달하기 위해 export 한 뒤 -E 로 보내거나, heredoc 안에서 GitHub-style 변수 보간 사용 ssh -o StrictHostKeyChecking=no "$SSH_USER@$SSH_HOST" bash -s << 'REMOTE'
ssh -o StrictHostKeyChecking=no -o ConnectTimeout=15 "$SSH_USER@$SSH_HOST" \
"DATABASE_URL='$DATABASE_URL' \
NEXTAUTH_URL='$NEXTAUTH_URL' \
NEXTAUTH_SECRET='$NEXTAUTH_SECRET' \
MASTER_PWD='$MASTER_PWD' \
AES_KEY='$AES_KEY' \
SMTP_HOST='$SMTP_HOST' \
SMTP_PORT='$SMTP_PORT' \
SMTP_USER='$SMTP_USER' \
SMTP_PASS='$SMTP_PASS' \
SMTP_FROM='$SMTP_FROM' \
MOMO_BANK_ACCOUNT='$MOMO_BANK_ACCOUNT' \
MOMO_PHONE='$MOMO_PHONE' \
bash -s" <<'REMOTE_SCRIPT'
set -e set -e
DEPLOY_DIR="$HOME/momo-erp/source" DEPLOY_DIR="$HOME/momo-erp/source"
mkdir -p "$HOME/momo-erp" mkdir -p "$HOME/momo-erp"
if [ -d "$DEPLOY_DIR/.git" ]; then if [ -d "$DEPLOY_DIR/.git" ]; then
cd "$DEPLOY_DIR" cd "$DEPLOY_DIR" && git fetch origin && git reset --hard origin/main
git fetch origin
git reset --hard origin/main
else else
git clone https://git.junggomoa.com/chpark/distribution_erp.git "$DEPLOY_DIR" git clone https://git.junggomoa.com/chpark/distribution_erp.git "$DEPLOY_DIR"
cd "$DEPLOY_DIR" cd "$DEPLOY_DIR"
fi fi
cat > .env.production <<EOF
cat > .env.production <<ENVEOF
DATABASE_URL="$DATABASE_URL" DATABASE_URL="$DATABASE_URL"
NEXTAUTH_URL="$NEXTAUTH_URL" NEXTAUTH_URL="$NEXTAUTH_URL"
NEXTAUTH_SECRET="$NEXTAUTH_SECRET" NEXTAUTH_SECRET="$NEXTAUTH_SECRET"
@@ -78,18 +49,16 @@ jobs:
AES_KEY="$AES_KEY" AES_KEY="$AES_KEY"
FILE_STORAGE_PATH="/data_storage" FILE_STORAGE_PATH="/data_storage"
LOG_LEVEL=info LOG_LEVEL=info
SMTP_HOST="$SMTP_HOST" SMTP_HOST="mail.coa-soft.com"
SMTP_PORT="$SMTP_PORT" SMTP_PORT="465"
SMTP_USER="$SMTP_USER" SMTP_USER="chpark@coa-soft.com"
SMTP_PASS="$SMTP_PASS" SMTP_PASS="1321Qkrckd!!!!!!"
SMTP_FROM="$SMTP_FROM" SMTP_FROM="모모유통 <chpark@coa-soft.com>"
MOMO_BANK_ACCOUNT="$MOMO_BANK_ACCOUNT" MOMO_BANK_ACCOUNT="기업은행 434-115361-01-016"
MOMO_PHONE="$MOMO_PHONE" MOMO_PHONE="010-6624-5315"
ENVEOF EOF
docker compose -f docker-compose.prod.yml up -d --build docker compose -f docker-compose.prod.yml up -d --build
# 마이그레이션 (실패해도 배포는 성공으로 간주) # DB 마이그레이션 (idempotent)
docker compose -f docker-compose.prod.yml exec -T momo-erp npm run migrate:momo || \ docker compose -f docker-compose.prod.yml exec -T momo-erp npm run migrate:momo || true
echo "::warning::migration step failed or skipped"
docker compose -f docker-compose.prod.yml ps docker compose -f docker-compose.prod.yml ps
REMOTE_SCRIPT REMOTE