From b135c150a707f53a4c295bb0f3a986faaba3ef77 Mon Sep 17 00:00:00 2001 From: Yeonsoo Kang <90603399+Kang1221@users.noreply.github.com> Date: Sun, 18 Feb 2024 02:05:31 +0900 Subject: [PATCH 01/13] feat: Create gradle.yml --- .github/workflows/gradle.yml | 69 ++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 .github/workflows/gradle.yml diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml new file mode 100644 index 0000000..58c6750 --- /dev/null +++ b/.github/workflows/gradle.yml @@ -0,0 +1,69 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. +# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle + +name: Java CI with Gradle + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + build: + + runs-on: ubuntu-latest + permissions: + contents: read + + steps: + #기본 체크아웃 + - uses: actions/checkout@v4 + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + # Configure Gradle for optimal use in GiHub Actions, including caching of downloaded dependencies. + # See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md + # Gradlew 실행 허용 + - name: Setup Gradle + uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0 + + - name: Build with Gradle Wrapper + run: ./gradlew build + + # NOTE: The Gradle Wrapper is the default and recommended way to run Gradle (https://docs.gradle.org/current/userguide/gradle_wrapper.html). + # If your project does not have the Gradle Wrapper configured, you can use the following configuration to run Gradle with a specified version. + # + # - name: Setup Gradle + # uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0 + # with: + # gradle-version: '8.5' + # + # - name: Build with Gradle 8.5 + # run: gradle build + + dependency-submission: + + runs-on: ubuntu-latest + permissions: + contents: write + + steps: + - uses: actions/checkout@v4 + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + # Generates and submits a dependency graph, enabling Dependabot Alerts for all project dependencies. + # See: https://github.com/gradle/actions/blob/main/dependency-submission/README.md + - name: Generate and submit dependency graph + uses: gradle/actions/dependency-submission@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0 From d1f7c0dd7d3fe7460d855271f8bf79e18e8c07b0 Mon Sep 17 00:00:00 2001 From: Yeonsoo Kang <90603399+Kang1221@users.noreply.github.com> Date: Sun, 18 Feb 2024 02:14:23 +0900 Subject: [PATCH 02/13] chore: delete test --- .github/workflows/gradle.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 58c6750..a962fef 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -31,12 +31,12 @@ jobs: # Configure Gradle for optimal use in GiHub Actions, including caching of downloaded dependencies. # See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md - # Gradlew 실행 허용 - - name: Setup Gradle - uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0 - - - name: Build with Gradle Wrapper - run: ./gradlew build + + # Gradle build (Test 제외) + - name: Build with Gradle + uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 + with: + arguments: clean build -x test # NOTE: The Gradle Wrapper is the default and recommended way to run Gradle (https://docs.gradle.org/current/userguide/gradle_wrapper.html). # If your project does not have the Gradle Wrapper configured, you can use the following configuration to run Gradle with a specified version. From 55d6c47045e7dd8c2d3e27b092e6c4b529313b0d Mon Sep 17 00:00:00 2001 From: Yeonsoo Kang <90603399+Kang1221@users.noreply.github.com> Date: Sun, 18 Feb 2024 02:48:16 +0900 Subject: [PATCH 03/13] feat: add docker build --- .github/workflows/gradle.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index a962fef..139d5fe 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -38,6 +38,14 @@ jobs: with: arguments: clean build -x test + # Docker build + - name: Docker build + run: | + docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }} + docker build -t donut . + docker tag donut kang1221/donut:${GITHUB_SHA::7} + docker push kang1221/donut:${GITHUB_SHA::7} + # NOTE: The Gradle Wrapper is the default and recommended way to run Gradle (https://docs.gradle.org/current/userguide/gradle_wrapper.html). # If your project does not have the Gradle Wrapper configured, you can use the following configuration to run Gradle with a specified version. # From 4a406b8dc06deb8c8b3ab3c3c1dde413c3f04692 Mon Sep 17 00:00:00 2001 From: Yeonsoo Kang <90603399+Kang1221@users.noreply.github.com> Date: Sun, 18 Feb 2024 03:16:33 +0900 Subject: [PATCH 04/13] feat: add access VM and pull docker image --- .github/workflows/gradle.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 139d5fe..e34cf09 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -46,6 +46,21 @@ jobs: docker tag donut kang1221/donut:${GITHUB_SHA::7} docker push kang1221/donut:${GITHUB_SHA::7} + # Deploy + - name: Deploy + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.VM_INSTANCE }} + username: ${{ secrets.SSH_USERNAME }} + key: ${{ secrets.SSH_PRIVATE_KEY }} + passphrase: ${{ secrets.SSH_PASSPHRASE }} + envs: GITHUB_SHA + script: | + sudo docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }} + sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${GITHUB_SHA::7} + sudo docker tag ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${GITHUB_SHA::7} donut + sudo docker-compose up -d + # NOTE: The Gradle Wrapper is the default and recommended way to run Gradle (https://docs.gradle.org/current/userguide/gradle_wrapper.html). # If your project does not have the Gradle Wrapper configured, you can use the following configuration to run Gradle with a specified version. # From 30b8266b18fbe04e18988de1171c91a6e4030ce1 Mon Sep 17 00:00:00 2001 From: Yeonsoo Kang <90603399+Kang1221@users.noreply.github.com> Date: Sun, 18 Feb 2024 03:23:18 +0900 Subject: [PATCH 05/13] Update gradle.yml --- .github/workflows/gradle.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index e34cf09..72fd4cb 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -56,10 +56,10 @@ jobs: passphrase: ${{ secrets.SSH_PASSPHRASE }} envs: GITHUB_SHA script: | - sudo docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }} - sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${GITHUB_SHA::7} - sudo docker tag ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${GITHUB_SHA::7} donut - sudo docker-compose up -d + sudo docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }} + sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${GITHUB_SHA::7} + sudo docker tag ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${GITHUB_SHA::7} donut + sudo docker-compose up -d # NOTE: The Gradle Wrapper is the default and recommended way to run Gradle (https://docs.gradle.org/current/userguide/gradle_wrapper.html). # If your project does not have the Gradle Wrapper configured, you can use the following configuration to run Gradle with a specified version. From 2f5fce7e544f7093773190bd4ebf746c91688f4d Mon Sep 17 00:00:00 2001 From: Yeonsoo Kang <90603399+Kang1221@users.noreply.github.com> Date: Sun, 18 Feb 2024 03:48:27 +0900 Subject: [PATCH 06/13] Update gradle.yml --- .github/workflows/gradle.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 72fd4cb..2261f95 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -56,10 +56,10 @@ jobs: passphrase: ${{ secrets.SSH_PASSPHRASE }} envs: GITHUB_SHA script: | - sudo docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }} - sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${GITHUB_SHA::7} - sudo docker tag ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${GITHUB_SHA::7} donut - sudo docker-compose up -d + sudo docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }} + sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${GITHUB_SHA::7} + sudo docker tag ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${GITHUB_SHA::7} donut + sudo docker-compose up -d # NOTE: The Gradle Wrapper is the default and recommended way to run Gradle (https://docs.gradle.org/current/userguide/gradle_wrapper.html). # If your project does not have the Gradle Wrapper configured, you can use the following configuration to run Gradle with a specified version. From fa9e14ff0eb7f2d807860d31627d8cabc46e1ac0 Mon Sep 17 00:00:00 2001 From: Yeonsoo Kang <90603399+Kang1221@users.noreply.github.com> Date: Sun, 18 Feb 2024 05:08:04 +0900 Subject: [PATCH 07/13] Update gradle.yml --- .github/workflows/gradle.yml | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 2261f95..bd540e0 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -38,29 +38,28 @@ jobs: with: arguments: clean build -x test + # Docker build - name: Docker build run: | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }} docker build -t donut . docker tag donut kang1221/donut:${GITHUB_SHA::7} - docker push kang1221/donut:${GITHUB_SHA::7} - - # Deploy + docker push kang1221/donut:${GITHUB_SHA::7} - name: Deploy uses: appleboy/ssh-action@master with: - host: ${{ secrets.VM_INSTANCE }} - username: ${{ secrets.SSH_USERNAME }} - key: ${{ secrets.SSH_PRIVATE_KEY }} - passphrase: ${{ secrets.SSH_PASSPHRASE }} - envs: GITHUB_SHA - script: | - sudo docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }} - sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${GITHUB_SHA::7} - sudo docker tag ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${GITHUB_SHA::7} donut - sudo docker-compose up -d - + host: ${{ secrets.VM_INSTANCE }} + username: ${{ secrets.SSH_USERNAME }} + key: ${{ secrets.SSH_PRIVATE_KEY }} + passphrase: ${{ secrets.SSH_PASSPHRASE }} + envs: GITHUB_SHA + script: | + sudo docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }} + sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${GITHUB_SHA::7} + sudo docker tag ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${GITHUB_SHA::7} donut + sudo docker-compose up -d + # NOTE: The Gradle Wrapper is the default and recommended way to run Gradle (https://docs.gradle.org/current/userguide/gradle_wrapper.html). # If your project does not have the Gradle Wrapper configured, you can use the following configuration to run Gradle with a specified version. # From f541f02647e67d486e332aa5a8a4c3e957ea3a3f Mon Sep 17 00:00:00 2001 From: Yeonsoo Kang <90603399+Kang1221@users.noreply.github.com> Date: Sun, 18 Feb 2024 05:10:53 +0900 Subject: [PATCH 08/13] Update gradle.yml --- .github/workflows/gradle.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index bd540e0..63c4896 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -52,7 +52,6 @@ jobs: host: ${{ secrets.VM_INSTANCE }} username: ${{ secrets.SSH_USERNAME }} key: ${{ secrets.SSH_PRIVATE_KEY }} - passphrase: ${{ secrets.SSH_PASSPHRASE }} envs: GITHUB_SHA script: | sudo docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }} From 6846c71d234edcf228533ef97954765bb402bc9c Mon Sep 17 00:00:00 2001 From: Yeonsoo Kang <90603399+Kang1221@users.noreply.github.com> Date: Sun, 18 Feb 2024 06:26:54 +0900 Subject: [PATCH 09/13] chore: delete orphans container --- .github/workflows/gradle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 63c4896..8ad37ef 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -57,7 +57,7 @@ jobs: sudo docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }} sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${GITHUB_SHA::7} sudo docker tag ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${GITHUB_SHA::7} donut - sudo docker-compose up -d + sudo docker-compose up -d --remove-orphans # NOTE: The Gradle Wrapper is the default and recommended way to run Gradle (https://docs.gradle.org/current/userguide/gradle_wrapper.html). # If your project does not have the Gradle Wrapper configured, you can use the following configuration to run Gradle with a specified version. From 9945e72713139f816e70ad5756ade32464dc18f2 Mon Sep 17 00:00:00 2001 From: Yeonsoo Kang <90603399+Kang1221@users.noreply.github.com> Date: Sun, 18 Feb 2024 07:14:48 +0900 Subject: [PATCH 10/13] feat : setting submodule --- .github/workflows/gradle.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 8ad37ef..5a64434 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -21,8 +21,15 @@ jobs: contents: read steps: - #기본 체크아웃 - - uses: actions/checkout@v4 + + # 체크아웃 + - name: Checkout + - uses: actions/checkout@v3 + with: + token: ${{ secrets.TOKEN }} + submodules: true + + ## JDK 17 - name: Set up JDK 17 uses: actions/setup-java@v4 with: @@ -31,7 +38,7 @@ jobs: # Configure Gradle for optimal use in GiHub Actions, including caching of downloaded dependencies. # See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md - + # Gradle build (Test 제외) - name: Build with Gradle uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 @@ -46,6 +53,9 @@ jobs: docker build -t donut . docker tag donut kang1221/donut:${GITHUB_SHA::7} docker push kang1221/donut:${GITHUB_SHA::7} + + + # Deploy - name: Deploy uses: appleboy/ssh-action@master with: From 21317b61a25f7c079671ec74baa74dfcaeddcd44 Mon Sep 17 00:00:00 2001 From: Yeonsoo Kang <90603399+Kang1221@users.noreply.github.com> Date: Sun, 18 Feb 2024 07:16:04 +0900 Subject: [PATCH 11/13] fix: syntax error --- .github/workflows/gradle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 5a64434..8f9f526 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -23,7 +23,7 @@ jobs: steps: # 체크아웃 - - name: Checkout + - name: Checkout - uses: actions/checkout@v3 with: token: ${{ secrets.TOKEN }} From 2c1f8dacf4d62dbf345612dc6cd27bf1abd5f63f Mon Sep 17 00:00:00 2001 From: Yeonsoo Kang <90603399+Kang1221@users.noreply.github.com> Date: Sun, 18 Feb 2024 07:18:06 +0900 Subject: [PATCH 12/13] Update gradle.yml --- .github/workflows/gradle.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 8f9f526..6f4eb8c 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -24,10 +24,10 @@ jobs: # 체크아웃 - name: Checkout - - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: - token: ${{ secrets.TOKEN }} - submodules: true + token: ${{ secrets.TOKEN }} + submodules: true ## JDK 17 - name: Set up JDK 17 From a3a06d4be9dbb1e484c3174aa30d104052510c0a Mon Sep 17 00:00:00 2001 From: Yeonsoo Kang <90603399+Kang1221@users.noreply.github.com> Date: Sun, 18 Feb 2024 07:56:59 +0900 Subject: [PATCH 13/13] Update gradle.yml --- .github/workflows/gradle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 6f4eb8c..c508cab 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -24,7 +24,7 @@ jobs: # 체크아웃 - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v3 with: token: ${{ secrets.TOKEN }} submodules: true