Merge pull request #89 from Jade0728/fix/82-fix #24
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 중 오류 발생: 경로 문제 또는 파일 누락 확인 필요, 배포 계속 진행" |