From dc507ca05aa80bd8374a218ecdb818e8562b8bce Mon Sep 17 00:00:00 2001 From: dgjinsu Date: Fri, 17 Nov 2023 09:52:16 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20github=20action=20yml=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 78 ++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..7cb7806 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,78 @@ +name: Java CI with Gradle + +on: + push: + branches: [ "release" ] + +permissions: + contents: read + +jobs: + build-docker-image: + 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: Run chmod to make graldew executable + run: chmod +x ./gradlew + + - name: Build with Gradle + uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 + with: + arguments: clean bootJar -Pspring.profiles.active=prod + + - name: docker image build + run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/jikgong . + + - name: docker login + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + # 5. Docker Hub 이미지 푸시 + - name: docker Hub push + run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/jikgong + + cd-pipeline: + needs: build-docker-image + runs-on: ubuntu-latest + steps: + # docker-compose.yml 파일을 ec2 /home/ubuntu 에 scp + - uses: actions/checkout@master + - name: copy file via ssh password + uses: appleboy/scp-action@master + with: + host: ${{ secrets.SSH_HOST }} + username: ubuntu + password: ${{ secrets.SSH_PASSWORD }} + port: 22 + source: "./docker-compose.yml" + target: "/home/ubuntu/" + + - name: executing remote ssh commands using password + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.SSH_HOST }} + username: ubuntu + key: ${{ secrets.SSH_PASSWORD }} + script: | + sudo docker rm -f $(docker ps -qa) + sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/jikgong + docker-compose up -d + docker image prune -f + +# # ec2에 접속해 script 명령어 실행 +# - name: executing remote ssh commands using password +# uses: appleboy/ssh-action@master +# with: +# host: ${{ secrets.SSH_HOST }} +# username: ubuntu +# key: ${{ secrets.SSH_KEY }} +# port: 22 +# script: "sudo docker-compose pull && sudo docker-compose up -d" \ No newline at end of file