Update main.yml 환격변수 복사 문제 #13
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 grep -q "DATABASE_URL=" ~/moving-be/.env; then | |
| # DATABASE_URL이 존재하면 덮어쓰기 | |
| sed -i 's|^DATABASE_URL=.*$|DATABASE_URL=${{ secrets.DATABASE_URL }}|' ~/moving-be/.env | |
| else | |
| # DATABASE_URL이 없으면 추가 | |
| echo "DATABASE_URL=${{ secrets.DATABASE_URL }}" >> ~/moving-be/.env | |
| fi | |
| if grep -q "PORT=" ~/moving-be/.env; then | |
| # PORT가 존재하면 덮어쓰기 | |
| sed -i 's|^PORT=.*$|PORT=${{ secrets.PORT }}|' ~/moving-be/.env | |
| else | |
| # PORT가 없으면 추가 | |
| 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 reload my-app -f # 서버 재시작 (pm2 또는 다른 방법으로) | |
| EOF |