Skip to content

feature/ CI/CD 파이프라인 구축 #3

Description

@synuo

🚀 첫 배포 완료: GitHub Actions를 이용한 EC2 자동 배포

📌 개요

이번 이슈에서는 deploy-main.yml 파일을 사용하여 main 브랜치에 변경 사항이 생길 때 EC2 서버에 자동으로 배포되는 CI/CD 파이프라인을 구축했습니다.
이제 수동 배포 없이, 코드를 푸시하면 자동으로 배포되도록 설정되었습니다.

🛠️ 주요 사항

  • GitHub Actions를 활용하여 main 브랜치에 push 이벤트가 발생하면 자동 배포 실행
  • SSH 키를 이용해 EC2 서버에 접속하고 Node.js 환경 설정
  • 프로젝트 파일을 EC2로 복사하고, npm ci 실행하여 의존성 설치
  • pm2를 이용하여 tsx 인터프리터로 애플리케이션 실행

📜 배포 스크립트 (.github/workflows/deploy-main.yml) 주요 내용

🔹 빌드 단계

  1. Node.js 20 환경 설정
  2. npm ci 실행하여 의존성 설치

🔹 배포 단계

  1. SSH 설정 후 EC2 서버에 접속
  2. Node.js 및 tsx 설치
  3. scp를 사용해 프로젝트 파일을 EC2로 전송
  4. npm ci 실행 후 pm2를 이용해 애플리케이션 실행

🏆 기대 효과

✅ 자동 배포: git push만으로 배포 자동화
✅ 일관된 환경 유지: 동일한 환경에서 테스트 및 배포 진행 가능
✅ 빠른 롤백 가능: pm2를 이용한 프로세스 관리

🔧 추가 개선 가능 사항

  • npm test 추가하여 배포 전 테스트 자동 실행
  • .env 파일을 안전하게 관리할 방법 추가 (secrets 활용)
  • pm2 save 및 pm2 startup을 활용하여 배포 후 자동 재시작 설정

Activity

  1. self-assigned this
    on Jan 20, 2025
  2. changed the title [-]CI/CD 파이프라인 구축[/-] [+]feature/CI/CD 파이프라인 구축[/+] on Feb 1, 2025
  3. changed the title [-]feature/CI/CD 파이프라인 구축[/-] [+]feature/ CI/CD 파이프라인 구축[/+] on Feb 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

featureNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions