Update README.md #1
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: 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 |