From b14d1a8544d5174cf8dc2bd9adb023089d9b681d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=A7=80=EC=9C=A4?= <111862541+y11n@users.noreply.github.com> Date: Sat, 16 Aug 2025 02:29:57 +0900 Subject: [PATCH 01/11] Create CICD.yml --- .github/workflows/CICD.yml | 80 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 .github/workflows/CICD.yml diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml new file mode 100644 index 0000000..e666951 --- /dev/null +++ b/.github/workflows/CICD.yml @@ -0,0 +1,80 @@ +# 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: CICD + +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' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0 + + - name: Build with Gradle Wrapper + run: ./gradlew build + + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build Docker + run: docker build --platfrom linux/amd64 -t ${{ secrets.DOCKERHUB_USERNAME }}/studylog_server . + - name: Push Docker + run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/studylog_server:latest + + 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' + + - name: Generate and submit dependency graph + uses: gradle/actions/dependency-submission@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0 + + deploy: + needs: build + runs-on: ubuntu-latest + + steps: + - name: Docker compose + uses: appleboy/ssh-action@v0.1.6 + with: + username: ubuntu + host: ${{ secrets.EC2_HOST }} + key: ${{ secrets.EC2_SSH_KEY }} + port: 22 + timeout: 60s + script: | + sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGENAME }}/studylog_server:latest + sudo docker-compose -f compose.yml up -d From a3c1b7ac6a9f22f558d9d0143fdddf7b2d90d02d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=A7=80=EC=9C=A4?= <111862541+y11n@users.noreply.github.com> Date: Sat, 16 Aug 2025 02:37:48 +0900 Subject: [PATCH 02/11] Update CICD.yml --- .github/workflows/CICD.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml index e666951..2523b9b 100644 --- a/.github/workflows/CICD.yml +++ b/.github/workflows/CICD.yml @@ -76,5 +76,5 @@ jobs: port: 22 timeout: 60s script: | - sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGENAME }}/studylog_server:latest + sudo docker pull ${{ secrets.DOCKER_USERNAME }}/studylog_server:latest sudo docker-compose -f compose.yml up -d From 5f454f621072ae3bd3fd8100d82246af09703bb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=A7=80=EC=9C=A4?= <111862541+y11n@users.noreply.github.com> Date: Sat, 16 Aug 2025 02:56:47 +0900 Subject: [PATCH 03/11] Update CICD.yml Grant execute permission for gradlew --- .github/workflows/CICD.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml index 2523b9b..15ab40b 100644 --- a/.github/workflows/CICD.yml +++ b/.github/workflows/CICD.yml @@ -31,6 +31,9 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0 + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Build with Gradle Wrapper run: ./gradlew build From 2a9562842b4d528767d5fc1e4e07115afabd4611 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=A7=80=EC=9C=A4?= <111862541+y11n@users.noreply.github.com> Date: Sat, 16 Aug 2025 03:22:08 +0900 Subject: [PATCH 04/11] Update CICD.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 테스트를 스킵하고 빌드 --- .github/workflows/CICD.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml index 15ab40b..86b5775 100644 --- a/.github/workflows/CICD.yml +++ b/.github/workflows/CICD.yml @@ -35,7 +35,7 @@ jobs: run: chmod +x gradlew - name: Build with Gradle Wrapper - run: ./gradlew build + run: ./gradlew build -x test - name: Login to DockerHub uses: docker/login-action@v2 From d5e0647423073a181ca52e51e35799de34b5851d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=A7=80=EC=9C=A4?= <111862541+y11n@users.noreply.github.com> Date: Sat, 16 Aug 2025 03:24:48 +0900 Subject: [PATCH 05/11] [Deploy] Update CICD.yml --- .github/workflows/CICD.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml index 86b5775..76d0c6c 100644 --- a/.github/workflows/CICD.yml +++ b/.github/workflows/CICD.yml @@ -44,7 +44,7 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build Docker - run: docker build --platfrom linux/amd64 -t ${{ secrets.DOCKERHUB_USERNAME }}/studylog_server . + run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/studylog_server . - name: Push Docker run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/studylog_server:latest From 262cd7b5c3d6c2dd5a614d1a36602b5d70886367 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=A7=80=EC=9C=A4?= <111862541+y11n@users.noreply.github.com> Date: Sat, 16 Aug 2025 03:44:13 +0900 Subject: [PATCH 06/11] [Deploy] Update Dockerfile --- Dockerfile | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index a3c7109..33fb089 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,4 @@ -# build -FROM eclipse-temurin:17-jdk-alpine AS build -WORKDIR /app -COPY gradlew gradle/ build.gradle settings.gradle ./ -RUN chmod +x gradlew && ./gradlew --version -COPY src src -RUN ./gradlew bootJar --no-daemon - -# run -FROM eclipse-temurin:17-jre-alpine -WORKDIR /app -COPY --from=build /app/build/libs/*.jar app.jar -EXPOSE 8080 -ENTRYPOINT ["java","-jar","/app/app.jar"] +FROM openjdk17 +ARG JAR_FILE=build/libs/*.jar +COPY ${JAR_FILE} studylog.jar +ENTRYPOINT ["java", "-Dspring.profiles.active=docker", "-jar", "studylog.jar"] From 8b57b965ad7a125f95c7d3c7325fdf68286cf3ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=A7=80=EC=9C=A4?= <111862541+y11n@users.noreply.github.com> Date: Sat, 16 Aug 2025 03:46:28 +0900 Subject: [PATCH 07/11] Update Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 33fb089..31ea4dd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk17 +FROM openjdk:17-jdk ARG JAR_FILE=build/libs/*.jar COPY ${JAR_FILE} studylog.jar ENTRYPOINT ["java", "-Dspring.profiles.active=docker", "-jar", "studylog.jar"] From 4e757c9261f36157c1fc3909b687b6b52e59c100 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=A7=80=EC=9C=A4?= <111862541+y11n@users.noreply.github.com> Date: Sat, 16 Aug 2025 03:56:54 +0900 Subject: [PATCH 08/11] Update CICD.yml --- .github/workflows/CICD.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml index 76d0c6c..651f110 100644 --- a/.github/workflows/CICD.yml +++ b/.github/workflows/CICD.yml @@ -79,5 +79,5 @@ jobs: port: 22 timeout: 60s script: | - sudo docker pull ${{ secrets.DOCKER_USERNAME }}/studylog_server:latest + sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/studylog_server sudo docker-compose -f compose.yml up -d From 215c6d7ed314fbf80024e7eff88b8f738813fdce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=A7=80=EC=9C=A4?= <111862541+y11n@users.noreply.github.com> Date: Sat, 16 Aug 2025 03:59:14 +0900 Subject: [PATCH 09/11] Update CICD.yml --- .github/workflows/CICD.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml index 651f110..76d0c6c 100644 --- a/.github/workflows/CICD.yml +++ b/.github/workflows/CICD.yml @@ -79,5 +79,5 @@ jobs: port: 22 timeout: 60s script: | - sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/studylog_server + sudo docker pull ${{ secrets.DOCKER_USERNAME }}/studylog_server:latest sudo docker-compose -f compose.yml up -d From ca4222308c6b414bde40e79d220e42472bb8cff9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=A7=80=EC=9C=A4?= <111862541+y11n@users.noreply.github.com> Date: Sat, 16 Aug 2025 04:01:31 +0900 Subject: [PATCH 10/11] Update CICD.yml --- .github/workflows/CICD.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml index 76d0c6c..6a8b37e 100644 --- a/.github/workflows/CICD.yml +++ b/.github/workflows/CICD.yml @@ -80,4 +80,4 @@ jobs: timeout: 60s script: | sudo docker pull ${{ secrets.DOCKER_USERNAME }}/studylog_server:latest - sudo docker-compose -f compose.yml up -d + sudo docker compose -f compose.yml up -d From 6418e23c11be4c9bc46aa58bc4fa697b1682f406 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=A7=80=EC=9C=A4?= <111862541+y11n@users.noreply.github.com> Date: Sat, 16 Aug 2025 04:06:58 +0900 Subject: [PATCH 11/11] Update CICD.yml --- .github/workflows/CICD.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml index 6a8b37e..fe894b4 100644 --- a/.github/workflows/CICD.yml +++ b/.github/workflows/CICD.yml @@ -79,5 +79,5 @@ jobs: port: 22 timeout: 60s script: | - sudo docker pull ${{ secrets.DOCKER_USERNAME }}/studylog_server:latest - sudo docker compose -f compose.yml up -d + sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/studylog_server:latest + sudo docker compose -f /home/ubuntu/project/compose.yml up -d