Repository navigation
[refactor/#74] 미사용 의존성 제거 및 직접참조 제거 (#75) #30
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: CD pipeline | |
| on: | |
| push: | |
| branches: | |
| - develop | |
| jobs: | |
| build-and-deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v3 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| - name: Grant permission for gradlew | |
| run: chmod +x gradlew | |
| - name: Clean and Build JAR | |
| run: | | |
| ./gradlew clean | |
| ./gradlew bootJar | |
| - name: Login to Docker Hub | |
| uses: docker/login-action@v2 | |
| with: | |
| username: ${{ secrets.DOCKER_USERNAME }} | |
| password: ${{ secrets.DOCKER_PASSWORD }} | |
| - name: Build Docker image | |
| run: docker build -t ${{ secrets.DOCKER_USERNAME }}/docker-springboot . | |
| - name: Push to Docker Hub | |
| run: docker push ${{ secrets.DOCKER_USERNAME }}/docker-springboot | |
| - name: Deploy to EC2 | |
| uses: appleboy/ssh-action@v0.1.7 | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_PRIVATE_KEY }} | |
| script: | | |
| export DOCKER_USERNAME=${{ secrets.DOCKER_USERNAME }} | |
| export EC2_PRIVATE_IP=${{ secrets.EC2_PRIVATE_IP }} | |
| export SPRING_PROFILES_ACTIVE=prod | |
| export DB_HOST=${{ secrets.DB_HOST }} | |
| export DB_PORT=${{ secrets.DB_PORT }} | |
| export DB_NAME=${{ secrets.DB_NAME }} | |
| export DB_USERNAME=${{ secrets.DB_USERNAME }} | |
| export DB_PASSWORD=${{ secrets.DB_PASSWORD }} | |
| # spring boot 이미지 최신화 및 업데이트 | |
| sudo -E docker-compose -f docker-compose.prod.yml pull app | |
| sudo -E docker-compose -f docker-compose.prod.yml up -d --no-deps app | |
| # 필요 없는 이미지 정리 | |
| sudo docker image prune -f |