Fix: Rename ecosystem.config.js to ecosystem.config.cjs #12
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 | |
| env: | |
| BACKEND_PORT: ${{ secrets.BACKEND_PORT }} | |
| BACKEND_FRONTEND_URL: ${{ secrets.BACKEND_FRONTEND_URL }} | |
| BACKEND_MONGO_URL: ${{ secrets.BACKEND_MONGO_URL }} | |
| BACKEND_SESSION_SECRET: ${{ secrets.BACKEND_SESSION_SECRET }} | |
| BACKEND_KAKAO_REST_API_KEY: ${{ secrets.BACKEND_KAKAO_REST_API_KEY }} | |
| BACKEND_KAKAO_REDIRECT_URI: ${{ secrets.BACKEND_KAKAO_REDIRECT_URI }} | |
| FRONTEND_API_BASE_URL: ${{ secrets.FRONTEND_API_BASE_URL }} | |
| FRONTEND_PORT: ${{ secrets.FRONTEND_PORT }} | |
| steps: | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: '20' | |
| - name: Deploy to EC2 | |
| uses: appleboy/ssh-action@v0.1.7 | |
| 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 | |
| # 앱 디렉토리 초기화 후 SSH clone | |
| if [ -d "$APP_DIR" ]; then | |
| rm -rf "$APP_DIR" | |
| fi | |
| mkdir -p "$APP_DIR" | |
| cd "$APP_DIR" | |
| git clone git@github.com:Ewhaian-WebEngineering/padlet.git "$APP_DIR" | |
| # 1️⃣ back/.env 생성 (echo 방식) | |
| mkdir -p "$APP_DIR/back" | |
| echo "PORT=${BACKEND_PORT}" > "$APP_DIR/back/.env" | |
| echo "FRONTEND_URL=${BACKEND_FRONTEND_URL}" >> "$APP_DIR/back/.env" | |
| echo "MONGO_URL=${BACKEND_MONGO_URL}" >> "$APP_DIR/back/.env" | |
| echo "SESSION_SECRET=${BACKEND_SESSION_SECRET}" >> "$APP_DIR/back/.env" | |
| echo "KAKAO_REST_API_KEY=${BACKEND_KAKAO_REST_API_KEY}" >> "$APP_DIR/back/.env" | |
| echo "KAKAO_REDIRECT_URI=${BACKEND_KAKAO_REDIRECT_URI}" >> "$APP_DIR/back/.env" | |
| # 2️⃣ back 설치 및 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 | |
| # 3️⃣ front/.env 생성 (echo 방식) | |
| mkdir -p "$APP_DIR/front" | |
| echo "VITE_API_BASE_URL=${FRONTEND_API_BASE_URL}" > "$APP_DIR/front/.env" | |
| echo "VITE_PORT=${FRONTEND_PORT}" >> "$APP_DIR/front/.env" | |
| # 4️⃣ front 설치 및 빌드 | |
| cd "$APP_DIR/front" | |
| npm install | |
| if [ -f "src/pages/loginPage/KakaoLogo.svg" ]; then | |
| npm run build || echo "Front build 실패: 경로 문제 또는 파일 누락 확인 필요" | |
| else | |
| echo "Front build 실패: KakaoLogo.svg 파일 존재하지 않음" | |
| fi | |
| # 5️⃣ Nginx 배포 | |
| if [ -f "$APP_DIR/nginx.conf" ]; then | |
| sudo cp "$APP_DIR/nginx.conf" /etc/nginx/sites-available/default | |
| sudo systemctl restart nginx | |
| else | |
| echo "nginx.conf 파일이 존재하지 않습니다. 경로 확인 필요" | |
| fi |