Files
distribution_erp/.gitea/workflows/deploy.yml
T

72 lines
2.6 KiB
YAML

name: Deploy momo-erp to production
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -H ${{ secrets.DEPLOY_HOST }} >> ~/.ssh/known_hosts 2>/dev/null
- name: Deploy via SSH
env:
SSH_USER: ${{ secrets.DEPLOY_USER }}
SSH_HOST: ${{ secrets.DEPLOY_HOST }}
DATABASE_URL: ${{ secrets.DATABASE_URL }}
NEXTAUTH_URL: ${{ secrets.NEXTAUTH_URL }}
NEXTAUTH_SECRET: ${{ secrets.NEXTAUTH_SECRET }}
MASTER_PWD: ${{ secrets.MASTER_PWD }}
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: |
ssh -o StrictHostKeyChecking=no "$SSH_USER@$SSH_HOST" bash -s << 'REMOTE'
set -e
DEPLOY_DIR="$HOME/momo-erp/source"
mkdir -p "$HOME/momo-erp"
if [ -d "$DEPLOY_DIR/.git" ]; then
cd "$DEPLOY_DIR" && git fetch origin && git reset --hard origin/main
else
git clone https://git.junggomoa.com/chpark/distribution_erp.git "$DEPLOY_DIR"
cd "$DEPLOY_DIR"
fi
cat > .env.production <<EOF
DATABASE_URL="$DATABASE_URL"
NEXTAUTH_URL="$NEXTAUTH_URL"
NEXTAUTH_SECRET="$NEXTAUTH_SECRET"
NEXT_PUBLIC_APP_NAME="유통관리 ERP"
NEXT_PUBLIC_COMPANY_NAME="모모유통"
MASTER_PWD="$MASTER_PWD"
AES_KEY="$AES_KEY"
FILE_STORAGE_PATH="/data_storage"
LOG_LEVEL=info
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"
EOF
docker compose -f docker-compose.prod.yml up -d --build
# DB 마이그레이션 (idempotent — 이미 있으면 IF NOT EXISTS 로 스킵)
docker compose -f docker-compose.prod.yml exec -T momo-erp npm run migrate:momo || true
docker compose -f docker-compose.prod.yml ps
REMOTE