Skip to content

Update main.yml 환격변수 복사 문제 #13

Update main.yml 환격변수 복사 문제

Update main.yml 환격변수 복사 문제 #13

Workflow file for this run

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