Skip to content

Update main.yml ssh-ip-address #9

Update main.yml ssh-ip-address

Update main.yml ssh-ip-address #9

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 [ ! -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