Skip to content

Merge pull request #89 from Jade0728/fix/82-fix #24

Merge pull request #89 from Jade0728/fix/82-fix

Merge pull request #89 from Jade0728/fix/82-fix #24

Workflow file for this run

name: CI/CD Deploy
on:
push:
branches:
- develop
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
- name: Deploy to EC2
uses: appleboy/[email protected]
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_KEY }}
port: 22
script: |
APP_DIR="/home/ubuntu/app"
# SSH host key 자동 등록
mkdir -p ~/.ssh
ssh-keyscan github.com >> ~/.ssh/known_hosts
# 앱 디렉토리 초기화 후 clone
if [ -d "$APP_DIR" ]; then
rm -rf "$APP_DIR"
fi
mkdir -p "$APP_DIR"
cd "$APP_DIR"
git clone [email protected]:Ewhaian-WebEngineering/padlet.git "$APP_DIR"
# 1️⃣ 백엔드 .env 복사
BACKEND_ENV_PATH="/home/ubuntu/env/back.env"
mkdir -p "$APP_DIR/back"
if [ -f "$BACKEND_ENV_PATH" ]; then
cp "$BACKEND_ENV_PATH" "$APP_DIR/back/.env"
else
echo "백엔드 .env 파일이 존재하지 않습니다: $BACKEND_ENV_PATH"
fi
# 2️⃣ 프론트 .env 복사
FRONTEND_ENV_PATH="/home/ubuntu/env/front.env"
mkdir -p "$APP_DIR/front"
if [ -f "$FRONTEND_ENV_PATH" ]; then
cp "$FRONTEND_ENV_PATH" "$APP_DIR/front/.env"
else
echo "프론트 .env 파일이 존재하지 않습니다: $FRONTEND_ENV_PATH"
fi
# 3️⃣ 백엔드 설치 및 PM2 재시작
cd "$APP_DIR/back"
npm install
if [ -f ecosystem.config.cjs ]; then
pm2 startOrRestart ecosystem.config.cjs --env production
else
echo "ecosystem.config.cjs 파일이 없습니다. PM2 재시작 건너뜀."
fi
# 4️⃣ 프론트 설치 및 빌드 (SVG 등 오류 무시)
cd "$APP_DIR/front"
npm install
npm run build || echo "Front build 중 오류 발생: 경로 문제 또는 파일 누락 확인 필요, 배포 계속 진행"