Merge pull request #32 from codeit-moving/dev #17
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: Deploy to EC2 | |
| on: | |
| push: | |
| branches: | |
| - main # main 브랜치에 푸시될 때 트리거됨 | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v3 | |
| - name: Set up SSH key | |
| run: | | |
| # ~/.ssh 디렉토리 생성 (기본적으로 없을 수 있음) | |
| mkdir -p ~/.ssh | |
| # GitHub secrets에 저장된 PEM 파일을 생성 | |
| echo "${{ secrets.EC2_SSH_PEM }}" > ~/.ssh/ec2.pem | |
| chmod 600 ~/.ssh/ec2.pem # SSH 키에 적절한 권한 부여 | |
| # EC2 인스턴스의 호스트 키를 확인하지 않도록 설정 (보안을 강화하려면 이 부분을 수정) | |
| echo -e "Host *\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config | |
| - name: Set up environment variables | |
| run: | | |
| ssh -i ~/.ssh/ec2.pem ec2-user@${{ secrets.EC2_ADDRESS }} "bash -s" << 'EOF' | |
| # .env 파일이 존재하는지 확인 | |
| if [ ! -f ~/moving-be/.env ]; then | |
| # .env 파일이 없으면 새로 생성 | |
| touch ~/moving-be/.env | |
| fi | |
| # GitHub Actions에서 전달된 .env 파일 내용 시크릿으로 가져오기 | |
| echo "${{ secrets.ENV_FILE }}" > ~/moving-be/.env | |
| # 파일 내용 확인 (선택 사항) | |
| cat ~/moving-be/.env | |
| EOF | |
| - name: Deploy to EC2 | |
| run: | | |
| ssh -i ~/.ssh/ec2.pem -T ec2-user@${{ secrets.EC2_ADDRESS }} << 'EOF' | |
| cd ~/moving-be | |
| git pull origin main # GitHub에서 최신 변경 사항을 pull | |
| npm install # 필요에 따라 의존성 설치 | |
| npm run build | |
| pm2 start dist/app.js --name my-app || pm2 reload my-app -f # 서버 재시작 (pm2 또는 다른 방법으로) | |
| EOF |