현재 배포 flow

image.png

현재 main 브랜치에 push되면 github actions를 활용해서 EC2에 배포되는 flow를 가지고 있습니다.

문제점

해결책

테스트 서버 구축

image (3).png

git workflows 설정

name: 테스트 자동배포

on:
  push:
    branches:
      - dev
  workflow_dispatch:

env:
  ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16
  ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
      
jobs:
  build-deploy:
    runs-on: node-deployment-server
    steps:
      - name: 깃레포지토리 소스코드 체크아웃
        uses: actions/checkout@v3
      - name: 노드 설치
        uses: actions/setup-node@v3
        with:
          node-version: '16'
      - name: 노드 패키지 설치
        run: npm install;
      - name: 프로젝트 빌드
        run: npm run build
        
      - name: 빌드 파일 배포
        run: rsync -az ./dist ./bin ./.env ./package.json ./package-lock.json [email protected]:/home/dev/server -e "ssh -i /etc/ssh/daehanbooks-account"
      - name: 노드 서버 리부트
        run: ssh -i /etc/ssh/daehanbooks-account [email protected] 'export NODE_ENV=development; cd server; npm install; npx node-pre-gyp rebuild -C ./node_modules/canvas; npm run patch; pm2 delete all; export SERVER_PORT=4001; pm2 start ./dist/server.js --name server --merge-logs -l ~/.pm2/logs/server.log -o NULL -e NULL;'

env 설정

DEVELOPMENT_DATABASE_URI=mongodb+srv://server:[email protected]/dev-salerbook-cash
PRODUCTION_DATABASE_URI=mongodb+srv://server:[email protected]/salerbook-cash