Merge branch 'develop2' of https://github.com/Zero-Pick/BE into develop2 #33
Workflow file for this run
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 | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - develop | |
| - develop2 | |
| permissions: | |
| contents: read | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v3 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v3 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| - name: Setup MySQL | |
| uses: mirromutth/[email protected] | |
| with: | |
| mysql database: 'testDB' | |
| mysql user: 'test' | |
| mysql password: 'testPW' | |
| - name: Create application.properties | |
| run: | | |
| cat <<EOT > ./src/main/resources/application.properties | |
| spring.datasource.url=${{ secrets.DB_URL }} | |
| spring.datasource.username=${{ secrets.DB_USERNAME }} | |
| spring.datasource.password=${{ secrets.DB_PASSWORD }} | |
| spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver | |
| spring.jpa.properties.hibernate.show_sql=true | |
| spring.jpa.properties.hibernate.format_sql=true | |
| spring.jpa.hibernate.ddl-auto=update | |
| EOT | |
| shell: bash | |
| - name: Build with Gradle | |
| run: | | |
| chmod +x gradlew | |
| ./gradlew build | |
| - name: Docker build and push | |
| run: | | |
| docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} | |
| docker build -t ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }} . | |
| docker push ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }} | |
| - name: executing remote ssh commands using password | |
| uses: appleboy/ssh-action@master | |
| with: | |
| host: ${{ secrets.HOST }} | |
| username: ubuntu | |
| key: ${{ secrets.KEY }} | |
| script: | | |
| # 기존 컨테이너 종료 및 제거 | |
| echo "Stopping and removing existing Docker containers..." | |
| sudo docker rm -f $(sudo docker ps -aq) || echo "No containers to remove" | |
| # 최신 Docker 이미지 가져오기 | |
| echo "Pulling the latest Docker image..." | |
| sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }} | |
| # Docker Compose를 통해 새 컨테이너 실행 | |
| echo "Starting deployment with Docker Compose..." | |
| cd ~ | |
| sudo docker-compose up -d --build | |
| # 사용하지 않는 Docker 이미지 정리 | |
| echo "Cleaning up unused Docker images..." | |
| sudo docker image prune -f || echo "No images to prune" | |