Skip to content

πŸ› FIX: 배포 ν™˜κ²½μ˜ λ ˆν¬μ§€ν† λ¦¬ 폴더 ꡬ쑰 μˆ˜μ • #2

πŸ› FIX: 배포 ν™˜κ²½μ˜ λ ˆν¬μ§€ν† λ¦¬ 폴더 ꡬ쑰 μˆ˜μ •

πŸ› FIX: 배포 ν™˜κ²½μ˜ λ ˆν¬μ§€ν† λ¦¬ 폴더 ꡬ쑰 μˆ˜μ • #2

Workflow file for this run

name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- name: μ½”λ“œ 체크아웃
uses: actions/checkout@v4
- name: SSH ν‚€ μ„€μ •
env:
PRIVATE_KEY: ${{ secrets.AWS_PRIVATE_KEY }}
run: |
mkdir -p ~/.ssh
echo "$PRIVATE_KEY" > ~/.ssh/aws.pem
sed -i 's/\\n/\n/g' ~/.ssh/aws.pem # μ€„λ°”κΏˆ 문자 처리
chmod 600 ~/.ssh/aws.pem
- name: EC2에 배포
env:
HOST: ${{ secrets.EC2_HOST }}
USER: ${{ secrets.EC2_USER }}
run: |
ssh -i ~/.ssh/aws.pem -o StrictHostKeyChecking=no $USER@$HOST '
# μ €μž₯μ†Œ 확인 및 클둠/μ—…λ°μ΄νŠΈ
if [ -d ~/SkillBridge/.git ]; then
# κΈ°μ‘΄ μ €μž₯μ†Œκ°€ μžˆλŠ” 경우 μ—…λ°μ΄νŠΈ
cd ~/SkillBridge &&
git fetch --all &&
git reset --hard origin/main
else
# μ €μž₯μ†Œκ°€ μ—†λŠ” 경우 μƒˆλ‘œ 클둠
mkdir -p ~/SkillBridge &&
git clone https://github.com/DjangoBookMakers/SkillBridge.git ~/SkillBridge &&
cd ~/SkillBridge
fi
# ν™˜κ²½ μ„€μ •
echo "SECRET_KEY=${{ secrets.SECRET_KEY }}" > .env.prod &&
echo "ALLOWED_HOSTS=${{ secrets.ALLOWED_HOSTS }}" >> .env.prod &&
echo "PORTONE_PG_PROVIDER=${{ secrets.PORTONE_PG_PROVIDER }}" >> .env.prod &&
echo "PORTONE_SHOP_ID=${{ secrets.PORTONE_SHOP_ID }}" >> .env.prod &&
echo "PORTONE_API_KEY=${{ secrets.PORTONE_API_KEY }}" >> .env.prod &&
echo "PORTONE_API_SECRET=${{ secrets.PORTONE_API_SECRET }}" >> .env.prod &&
echo "GOOGLE_CLIENT_ID=${{ secrets.GOOGLE_CLIENT_ID }}" >> .env.prod &&
echo "GOOGLE_CLIENT_SECRET=${{ secrets.GOOGLE_CLIENT_SECRET }}" >> .env.prod &&
echo "KAKAO_CLIENT_ID=${{ secrets.KAKAO_CLIENT_ID }}" >> .env.prod &&
echo "KAKAO_CLIENT_SECRET=${{ secrets.KAKAO_CLIENT_SECRET }}" >> .env.prod &&
echo "POSTGRES_DB=${{ secrets.POSTGRES_DB }}" > .env.prod-db &&
echo "POSTGRES_USER=${{ secrets.POSTGRES_USER }}" >> .env.prod-db &&
echo "POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }}" >> .env.prod-db &&
echo "POSTGRES_HOST=${{ secrets.POSTGRES_HOST }}" >> .env.prod-db &&
echo "POSTGRES_PORT=${{ secrets.POSTGRES_PORT }}" >> .env.prod-db &&
# Docker μ»¨ν…Œμ΄λ„ˆ μž¬μ‹œμž‘
docker compose down &&
docker compose up -d --build
'