[FIX] 관리자 페이지 페이지번호 기반 조회-slice 응답 page로 수정 #292
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 with Blue-Green Deployment | |
| on: | |
| push: | |
| branches: [ "develop" ] | |
| pull_request: | |
| branches: [ "develop" ] | |
| jobs: | |
| build-and-deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| # 1. GitHub 레포 체크아웃 (소스코드 가져옴) | |
| - name: Checkout repository | |
| uses: actions/checkout@v3 | |
| # 2. JDK 17 설정 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v3 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| # 3. gradlew 권한 부여 | |
| - name: Make gradlew executable | |
| run: chmod +x ./gradlew | |
| # 4. Gradle Build (테스트 제외) | |
| - name: Build with Gradle (skip tests) | |
| run: ./gradlew build -x test | |
| # 5. Docker Build & Push | |
| - name: Build and push Docker image | |
| if: github.event_name == 'push' | |
| run: | | |
| echo "🔨 Building Docker image..." | |
| docker build -t ${{ secrets.DOCKER_USERNAME }}/ccapp:latest . | |
| echo "🔐 Logging into Docker Hub..." | |
| echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin | |
| echo "📤 Pushing to Docker Hub..." | |
| docker push ${{ secrets.DOCKER_USERNAME }}/ccapp:latest | |
| # 6. 배포 파일들을 EC2로 복사 | |
| - name: Copy deployment files to EC2 | |
| if: github.event_name == 'push' | |
| uses: appleboy/[email protected] | |
| with: | |
| host: ${{ secrets.HOST }} | |
| username: ubuntu | |
| key: ${{ secrets.PRIVATE_KEY }} | |
| source: "docker-compose.yml,switch-blue-green.sh,health-check.sh,rollback.sh" | |
| target: /home/ubuntu/ccapp | |
| overwrite: true | |
| # 7. EC2에서 블루그린 배포 실행 | |
| - name: Deploy with Blue-Green strategy | |
| if: github.event_name == 'push' | |
| uses: appleboy/[email protected] | |
| with: | |
| host: ${{ secrets.HOST }} | |
| username: ubuntu | |
| key: ${{ secrets.PRIVATE_KEY }} | |
| script: | | |
| cd /home/ubuntu/ccapp | |
| echo "🔒 Docker Hub Login" | |
| echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin | |
| echo "📦 Pull latest images" | |
| docker compose pull | |
| chmod +x switch-blue-green.sh health-check.sh rollback.sh | |
| echo "🔄 Execute Blue-Green deployment with auto rollback" | |
| if ./switch-blue-green.sh; then | |
| echo "✅ Deployment completed successfully" | |
| else | |
| echo "❌ Deployment failed, check rollback logs" | |
| if [ -f /tmp/rollback.log ]; then | |
| echo "📋 Rollback logs:" | |
| cat /tmp/rollback.log | |
| fi | |
| exit 1 | |
| fi |