Skip to content

Update README.md

Update README.md #1

Workflow file for this run

name: CI/CD using GitHub Actions & Docker Compose
on:
push:
branches: [ "deploy" ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: ✅ 코드 체크아웃
uses: actions/checkout@v4
- name: 🔐 백엔드 application-secret.yml 생성
run: |
echo "${{ secrets.BACKEND_SECRET_YML }}" > ./backend/src/main/resources/application-secret.yml
- name: 🔐 프론트엔드 .env.production 생성
run: |
echo "${{ secrets.FRONTEND_ENV }}" > ./frontend/.env.production
- name: 🛠️ 백엔드 JAR 빌드
working-directory: ./backend
run: |
chmod +x ./gradlew
./gradlew clean build -x test
- name: 🐳 DockerHub 로그인
run: docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
- name: 🧱 백엔드 Docker 이미지 빌드 & 푸시
run: |
docker build -t ${{ secrets.DOCKER_USERNAME }}/backend-app ./backend
docker push ${{ secrets.DOCKER_USERNAME }}/backend-app
- name: 🧱 프론트엔드 Docker 이미지 빌드 & 푸시
run: |
docker build -t ${{ secrets.DOCKER_USERNAME }}/frontend-app ./frontend
docker push ${{ secrets.DOCKER_USERNAME }}/frontend-app
- name: 🚀 EC2에 배포
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_KEY }}
script: |
# 클론 안 되어 있으면 clone, 있으면 pull
if [ ! -d "NBE4-5-3-Team07" ]; then
git clone https://github.com/prgrms-be-devcourse/NBE4-5-3-Team07.git
fi
cd NBE4-5-3-Team07
git fetch origin deploy
git checkout deploy
git pull origin deploy
# DockerHub 로그인
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
# docker-compose로 서비스 재시작
docker compose down
docker compose pull
docker compose up -d --remove-orphans
# 안 쓰는 이미지/컨테이너/볼륨 정리
docker system prune -af --volumes