test: 깃액션 테스트 #15
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 Pipeline (planova-server) | |
| on: | |
| push: | |
| branches: | |
| - main | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: "17" | |
| distribution: "temurin" | |
| - name: gradlew mod modify | |
| run: chmod +x gradlew | |
| - name: Cache Gradle packages | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle- | |
| - name: Spring Boot Build | |
| run: ./gradlew clean build --exclude-task test | |
| - name: docker image build | |
| run: docker build -t ${{ secrets.DOCKER_USERNAME }}/planova-server . | |
| - name: Login to Docker Hub | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKER_USERNAME }} | |
| password: ${{ secrets.DOCKER_PASSWORD }} | |
| - name: docker Hub push | |
| run: docker push ${{ secrets.DOCKER_USERNAME }}/planova-server | |
| - name: Deploy to Remote Server | |
| uses: appleboy/ssh-action@master | |
| with: | |
| host: ${{ secrets.REMOTE_HOST }} | |
| username: ${{ secrets.REMOTE_USER }} | |
| key: ${{ secrets.SSH_PRIVATE_KEY }} | |
| port: ${{ secrets.REMOTE_PORT }} | |
| script: | | |
| cd ${{ secrets.REMOTE_PROJECT_PATH }} | |
| docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} | |
| docker compose down --rmi all | |
| docker rmi ${{ secrets.DOCKER_USERNAME }}/planova-server | |
| docker pull ${{ secrets.DOCKER_USERNAME }}/planova-server | |
| docker compose up -d --remove-orphans | |
| - name: Send success message | |
| if: success() | |
| run: echo "🎉 CI/CD Pipeline completed successfully!" |