rm: 도커 컴포즈 제거 #33
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: Create Application yml | |
| run: | | |
| mkdir -p ./src/main/resources | |
| echo "${{secrets.APPLICATION_YML}}" > ./src/main/resources/application.yml | |
| - 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-spring . | |
| - 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-spring | |
| - 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 }} | |
| echo "${{secrets.APPLICATION_YML}}" > ./application.yml | |
| docker stop planova-spring || true | |
| docker rm planova-spring || true | |
| docker rmi ${{ secrets.DOCKER_USERNAME }}/planova-spring || true | |
| docker pull ${{ secrets.DOCKER_USERNAME }}/planova-spring | |
| docker run -d --name planova-spring \ | |
| -p 8002:8000 \ | |
| -v $(pwd)/application.yml:/app/application.yml \ | |
| ${{ secrets.DOCKER_USERNAME }}/planova-spring | |
| - name: Send success message | |
| if: success() | |
| run: echo "🎉 CI/CD Pipeline completed successfully!" |