[Fix] : @Max 사용 시 validator 의존관계 설정 #92
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: Java CI with Gradle | |
| # 동작 조건 설정 : develop 브랜치에 push 또는 pull request가 발생할 경우 동작한다. | |
| on: | |
| push: | |
| branches: [ "dev", "main" ] | |
| pull_request: | |
| branches: [ "dev", "main" ] | |
| env: | |
| DOCKER_IMAGE: ${{ secrets.DOCKERHUB_USERNAME }}/2025andrew | |
| PORT: 8080 | |
| jobs: | |
| # Spring Boot 애플리케이션을 빌드하여 도커허브에 push 하는 과정 | |
| build-docker-image: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| # 1. Java 17 설정 | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| # 2. SpringBoot 애플리케이션 Build | |
| - name: Set up Gradle | |
| uses: gradle/actions/[email protected] | |
| # 2-1 실행 권한 설정 | |
| - name: Grant execute permission | |
| run: chmod +x ./gradlew | |
| - name: Build with Gradle | |
| run: ./gradlew clean bootJar | |
| # 3. Docker 이미지 빌드 | |
| - name: docker image build | |
| run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/2025andrew:latest . | |
| # 4. DockerHub 로그인 | |
| - name: docker login | |
| uses: docker/login-action@v2 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_USERNAME }} | |
| password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
| # 5. Docker Hub 이미지 푸시 | |
| - name: docker Hub push | |
| run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/2025andrew:latest | |
| - name: Build with Gradle Wrapper | |
| run: ./gradlew build -x test | |
| deploy: | |
| needs: build-docker-image | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Docker Hub Login | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_USERNAME }} | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| - name: Deploy to EC2 via SSH | |
| uses: appleboy/[email protected] | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_SSH_KEY }} | |
| script: | | |
| # docker compose.yml과 .env.prod가 있는 디렉토리로 이동 | |
| cd /home/ubuntu/app | |
| echo ${{ secrets.DOCKERHUB_PASSWORD }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin | |
| # 최신 이미지 pull | |
| docker pull ${{ secrets.DOCKERHUB_USERNAME }}/2025andrew:latest | |
| # 기존 컨테이너 중지 및 삭제 | |
| docker compose down | |
| # 최신 이미지로 재실행 | |
| docker compose up -d | |
| # 상태 확인 | |
| docker ps | grep 2025andrew | |
| # 불필요한 리소스 정리 | |
| docker system prune -f | |