Skip to content

fix: modify pm2 script (#252) #141

fix: modify pm2 script (#252)

fix: modify pm2 script (#252) #141

Workflow file for this run

name: Deploy to Development Server
on:
push:
branches:
- main # main 브랜치에 변경 사항이 푸시될 때만 실행
jobs:
deploy:
runs-on: ubuntu-latest
steps:
# 1. Node.js 및 pnpm 설치
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: "18" # 원하는 Node.js 버전으로 설정
- name: Install pnpm
run: npm install -g pnpm
# 2. Repository Checkout
- name: Checkout repository
uses: actions/checkout@v2
# Create client .env file
- name: Create .env file
run: echo "${{ secrets.FRONT_END_ENV }}" > apps/client/.env
# 3. Build Project
- name: Install dependencies and build project
run: |
pnpm install
cd apps/client
pnpm run build
# 4. Upload static files to Object Storage
- name: Upload to Object Storage
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: "kr-standard" # 리전 설정
run: |
# AWS CLI 설치 확인 및 설정
sudo apt-get update && sudo apt-get install -y awscli
# 빌드된 정적 파일을 오브젝트 스토리지로 업로드
aws --endpoint-url=https://kr.object.ncloudstorage.com s3 sync ./apps/client/dist s3://ask-it-static/dist --acl public-read
# 5. Deploy Code and Start Server
- name: Deploy to Development Server
uses: appleboy/[email protected]
with:
host: ${{ secrets.WEB_SERVER_IP }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.NCP_SERVER_RSA_PRIVATE_KEY }}
script: |
# NVM 설정 로드
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# 전역 패키지 설치
npm install -g pnpm
npm install -g pm2
# 프로젝트 디렉토리 이동 및 최신 코드 가져오기
cd ~/web07-Ask-It
git pull origin main
pnpm install
# 서버 디렉토리로 이동하여 환경 변수 설정
cd apps/server
echo "${{ secrets.SERVER_ENV }}" > .env
# pm2로 기존 프로세스 종료 및 새 프로세스 시작
pm2 stop all || true
pm2 delete all || true
pnpx prisma generate
pnpx prisma migrate deploy
pnpm build
pm2 start ecosystem.config.js