Update main.yml ssh-ip-address #9
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' | |
| if [ ! -f ~/moving-be/.env ]; then | |
| echo "DATABASE_URL=${{ secrets.DATABASE_URL }}" > ~/moving-be/.env | |
| echo "PORT=${{ secrets.PORT }}" >> ~/moving-be/.env | |
| else | |
| echo "DATABASE_URL=${{ secrets.DATABASE_URL }}" >> ~/moving-be/.env | |
| echo "PORT=${{ secrets.PORT }}" >> ~/moving-be/.env | |
| fi | |
| 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 restart my-app # 서버 재시작 (pm2 또는 다른 방법으로) | |
| EOF |