Dev/개발 일지

7. Github Actions 배포 자동화

takeU 2025. 2. 2. 15:34
반응형

배포 설정

.github/workflows/deploy.yml

name: Deploy on Push

on:
  push:
    branches:
      - main  # main 브랜치에 푸시될 때 실행

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      # 1. 리포지토리 체크아웃 / 저장소 코드를 워크플로 실행 환경에 복사하는 GitHub에서 제공하는 공식 액션
      - name: Checkout repository
        uses: actions/checkout@v3

      # 2. SSH 키 설정 및 서버에 접속하여 빌드 실행
      - name: Deploy to server
        env:
          SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
        run: |
          # SSH 키 설정
          mkdir -p ~/.ssh
          echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
          chmod 600 ~/.ssh/id_rsa

          # SSH 접속 및 빌드 실행
          ssh -p 포트 -o StrictHostKeyChecking=no 이름@IP "
            cd ~/Desktop/playground/apps/maplem/frontend &&
            git pull &&
            pnpm install &&
            pnpm build
          "

빌드 실행 이후 빌드파일을 nginx로 이동시키는 과정까지 빌드 커맨드에 들어있어 자동으로 새로운 버전을 서빙하게 됨.

SSH_PRIVATE_KEY 키 등록 방법

  1. ssh 비밀키 복사 cat ~/.ssh/id_rsa 후 복사
  2. GitHub Repository로 이동
  3. Settings → Secrets and Variables → Actions로 이동
  4. New repository secret을 클릭
  5. 이름을 SSH_PRIVATE_KEY로 설정하고 복사한 개인 키를 붙여넣기

서버에 공개키를 등록하는 과정

  1. ssh 공개키 복사 cat ~/.ssh/id_rsa.pub 후 복사
  2. ssh 접속 후 ~/.ssh/authorized_keys에 내용 복사

추가적으로 테스트코드를 도입하는 경우 수정될 여지가 있음

반응형