From 53631514f8917dff2455dee9f0316a64a6efefcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=B1=EC=9E=AC=ED=98=81?= Date: Mon, 6 Jan 2025 12:32:11 +0900 Subject: [PATCH 01/28] =?UTF-8?q?[hotfix]=20AccessToken=20ExpiredMs=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../classfit/auth/security/filter/CustomLoginFilter.java | 2 +- .../classfit/example/classfit/auth/service/AuthService.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/classfit/example/classfit/auth/security/filter/CustomLoginFilter.java b/src/main/java/classfit/example/classfit/auth/security/filter/CustomLoginFilter.java index 70014193..ad9be646 100644 --- a/src/main/java/classfit/example/classfit/auth/security/filter/CustomLoginFilter.java +++ b/src/main/java/classfit/example/classfit/auth/security/filter/CustomLoginFilter.java @@ -59,7 +59,7 @@ protected void successfulAuthentication(HttpServletRequest req, HttpServletRespo String role = auth.getAuthority(); - String access = jwtUtil.createJwt("access", customAuth.getEmail(), role, 1000 * 60 * 5L); // 5분 + String access = jwtUtil.createJwt("access", customAuth.getEmail(), role, 1000 * 60 * 60 * 3L); // 5분 String refresh = jwtUtil.createJwt("refresh", customAuth.getEmail(), role, 1000 * 60 * 60 * 24 * 7L); // 7일 addRefreshEntity(authResult.getName(), refresh, 1000 * 60 * 60 * 24 * 7L); diff --git a/src/main/java/classfit/example/classfit/auth/service/AuthService.java b/src/main/java/classfit/example/classfit/auth/service/AuthService.java index 61667704..d94fa692 100644 --- a/src/main/java/classfit/example/classfit/auth/service/AuthService.java +++ b/src/main/java/classfit/example/classfit/auth/service/AuthService.java @@ -54,7 +54,7 @@ public ResponseEntity reissue(HttpServletRequest request, HttpServletResponse throw new ClassfitException("invalid refresh token", HttpStatus.BAD_REQUEST); } - String newAccess = jwtUtil.createJwt("access", email, role, 1000 * 60 * 5L); + String newAccess = jwtUtil.createJwt("access", email, role, 1000 * 60 * 60 * 3L); String newRefresh = jwtUtil.createJwt("refresh", email, role, 1000 * 60 * 60 * 24 * 7L); redisUtil.deleteData(redisKey); From e73c153fc0715f63ec5cf93296e160d599dadfa5 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Thu, 9 Jan 2025 21:52:18 +0900 Subject: [PATCH 02/28] =?UTF-8?q?gradle.yml=20=EA=B7=B8=EB=A6=B0=ED=99=98?= =?UTF-8?q?=EA=B2=BD=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle.yml | 49 ++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 13 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 520d2752..851e92c1 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -34,7 +34,10 @@ jobs: arguments: clean bootJar - name: Docker image build - run: docker build -t ${{ secrets.DOCKER_USERNAME }}/classfit-dev . + run: docker build -t ${{ secrets.DOCKER_USERNAME }}/classfit-dev:blue . + + - name: Tag image for green environment + run: docker tag ${{ secrets.DOCKER_USERNAME }}/classfit-dev:blue ${{ secrets.DOCKER_USERNAME }}/classfit-dev:green - name: Docker login uses: docker/login-action@v2 @@ -42,29 +45,49 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Docker Hub push - run: docker push ${{ secrets.DOCKER_USERNAME }}/classfit-dev + - name: Push Docker images + run: | + docker push ${{ secrets.DOCKER_USERNAME }}/classfit-dev:blue + docker push ${{ secrets.DOCKER_USERNAME }}/classfit-dev:green - run-docker-image-on-ec2: + deploy-blue-environment: needs: build-docker-image runs-on: self-hosted steps: - - name: Docker pull - run: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/classfit-dev + - name: Pull blue Docker image + run: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/classfit-dev:blue - - name: Stop and remove existing containers + - name: Stop and remove existing blue containers run: | - CONTAINER_IDS=$(sudo docker ps -aq) + CONTAINER_IDS=$(sudo docker ps -aq --filter "name=classfit-blue") if [ -n "$CONTAINER_IDS" ]; then sudo docker stop $CONTAINER_IDS || true sudo docker rm $CONTAINER_IDS || true else - echo "No containers to stop or remove." + echo "No blue containers to stop or remove." fi - - name: Run new container - run: sudo docker run --name classfit-dev --rm -d -p 8080:8080 -v /home/ec2-user/app/logs:/log ${{ secrets.DOCKER_USERNAME }}/classfit-dev + - name: Run new blue container + run: sudo docker run --name classfit-blue --rm -d -p 8080:8080 -v /home/ec2-user/app/logs:/log ${{ secrets.DOCKER_USERNAME }}/classfit-dev:blue + + deploy-green-environment: + needs: build-docker-image + runs-on: self-hosted + + steps: + - name: Pull green Docker image + run: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/classfit-dev:green + + - name: Stop and remove existing green containers + run: | + CONTAINER_IDS=$(sudo docker ps -aq --filter "name=classfit-green") + if [ -n "$CONTAINER_IDS" ]; then + sudo docker stop $CONTAINER_IDS || true + sudo docker rm $CONTAINER_IDS || true + else + echo "No green containers to stop or remove." + fi - - name: Clean up old Docker images - run: sudo docker system prune -f + - name: Run new green container + run: sudo docker run --name classfit-green --rm -d -p From 75829442901dea7f295c6f158df2197563eb8a4c Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Thu, 9 Jan 2025 21:57:25 +0900 Subject: [PATCH 03/28] =?UTF-8?q?gradle.yml=20=EA=B7=B8=EB=A6=B0=ED=99=98?= =?UTF-8?q?=EA=B2=BD=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .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 851e92c1..9112b871 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -90,4 +90,4 @@ jobs: fi - name: Run new green container - run: sudo docker run --name classfit-green --rm -d -p + run: sudo docker run --name classfit-green --rm -d -p 8081:8080 -v /home/ec2-user/app/logs:/log ${{ secrets.DOCKER_USERNAME }}/classfit-dev:green From 8d394d5fb44cf7799d1a29ae2fa264ddcb3fcb9f Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Thu, 9 Jan 2025 22:04:37 +0900 Subject: [PATCH 04/28] =?UTF-8?q?[cicd]gradle.yml=20=EA=B7=B8=EB=A6=B0?= =?UTF-8?q?=ED=99=98=EA=B2=BD=20=EC=B6=94=EA=B0=80=20#3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 9112b871..85a86d62 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -62,11 +62,12 @@ jobs: run: | CONTAINER_IDS=$(sudo docker ps -aq --filter "name=classfit-blue") if [ -n "$CONTAINER_IDS" ]; then - sudo docker stop $CONTAINER_IDS || true - sudo docker rm $CONTAINER_IDS || true + sudo docker stop $CONTAINER_IDS || true + sudo docker rm $CONTAINER_IDS || true else echo "No blue containers to stop or remove." fi + sudo docker ps -a # (Optional) List all containers to ensure none are running - name: Run new blue container run: sudo docker run --name classfit-blue --rm -d -p 8080:8080 -v /home/ec2-user/app/logs:/log ${{ secrets.DOCKER_USERNAME }}/classfit-dev:blue @@ -83,8 +84,8 @@ jobs: run: | CONTAINER_IDS=$(sudo docker ps -aq --filter "name=classfit-green") if [ -n "$CONTAINER_IDS" ]; then - sudo docker stop $CONTAINER_IDS || true - sudo docker rm $CONTAINER_IDS || true + sudo docker stop $CONTAINER_IDS || true + sudo docker rm $CONTAINER_IDS || true else echo "No green containers to stop or remove." fi From 01e095c90c86c8dad0f8cf5896f24ff8f1c789d6 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Thu, 9 Jan 2025 22:13:04 +0900 Subject: [PATCH 05/28] Update gradle.yml --- .github/workflows/gradle.yml | 54 ++++++++++-------------------------- 1 file changed, 15 insertions(+), 39 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 85a86d62..49c75530 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -34,10 +34,7 @@ jobs: arguments: clean bootJar - name: Docker image build - run: docker build -t ${{ secrets.DOCKER_USERNAME }}/classfit-dev:blue . - - - name: Tag image for green environment - run: docker tag ${{ secrets.DOCKER_USERNAME }}/classfit-dev:blue ${{ secrets.DOCKER_USERNAME }}/classfit-dev:green + run: docker build -t ${{ secrets.DOCKER_USERNAME }}/classfit-dev . - name: Docker login uses: docker/login-action@v2 @@ -45,50 +42,29 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Push Docker images - run: | - docker push ${{ secrets.DOCKER_USERNAME }}/classfit-dev:blue - docker push ${{ secrets.DOCKER_USERNAME }}/classfit-dev:green + - name: Docker Hub push + run: docker push ${{ secrets.DOCKER_USERNAME }}/classfit-dev - deploy-blue-environment: + run-docker-image-on-ec2: needs: build-docker-image runs-on: self-hosted steps: - - name: Pull blue Docker image - run: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/classfit-dev:blue + - name: Docker pull + run: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/classfit-dev - - name: Stop and remove existing blue containers + - name: Stop and remove existing containers run: | - CONTAINER_IDS=$(sudo docker ps -aq --filter "name=classfit-blue") + CONTAINER_IDS=$(sudo docker ps -aq) if [ -n "$CONTAINER_IDS" ]; then - sudo docker stop $CONTAINER_IDS || true - sudo docker rm $CONTAINER_IDS || true + sudo docker stop $CONTAINER_IDS || true + sudo docker rm $CONTAINER_IDS || true else - echo "No blue containers to stop or remove." + echo "No containers to stop or remove." fi - sudo docker ps -a # (Optional) List all containers to ensure none are running - - - name: Run new blue container - run: sudo docker run --name classfit-blue --rm -d -p 8080:8080 -v /home/ec2-user/app/logs:/log ${{ secrets.DOCKER_USERNAME }}/classfit-dev:blue - - deploy-green-environment: - needs: build-docker-image - runs-on: self-hosted - steps: - - name: Pull green Docker image - run: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/classfit-dev:green - - - name: Stop and remove existing green containers - run: | - CONTAINER_IDS=$(sudo docker ps -aq --filter "name=classfit-green") - if [ -n "$CONTAINER_IDS" ]; then - sudo docker stop $CONTAINER_IDS || true - sudo docker rm $CONTAINER_IDS || true - else - echo "No green containers to stop or remove." - fi + - name: Run new container + run: sudo docker run —name classfit-dev —rm -d -p 8080:8080 -v /home/ec2-user/app/logs:/log ${{ secrets.DOCKER_USERNAME }}/classfit-dev - - name: Run new green container - run: sudo docker run --name classfit-green --rm -d -p 8081:8080 -v /home/ec2-user/app/logs:/log ${{ secrets.DOCKER_USERNAME }}/classfit-dev:green + - name: Clean up old Docker images + run: sudo docker system prune -f From 1a4911459056861229c5023033a9d5787f512ad1 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Thu, 9 Jan 2025 22:42:22 +0900 Subject: [PATCH 06/28] Update gradle.yml --- .github/workflows/gradle.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 49c75530..a8b19c1c 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -19,6 +19,7 @@ jobs: java-version: '22' distribution: 'temurin' + - name: Grant execute permission for Gradle Wrapper run: chmod +x gradlew From 6e2f123265740565f1926cab90e904e839f11f61 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Thu, 9 Jan 2025 22:54:51 +0900 Subject: [PATCH 07/28] =?UTF-8?q?[cicd]=20gradle.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle.yml | 40 +++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index a8b19c1c..2d4333fc 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -1,8 +1,8 @@ name: Java CI with Gradle - +# 동작 조건 설정 : main 브랜치에 push 혹은 pull request가 발생할 경우 동작한다. on: - push: - branches: [ "master" ] + pull_request: + branches: [ "main" ] permissions: contents: read @@ -13,59 +13,61 @@ jobs: steps: - uses: actions/checkout@v3 + # 1. Java 설정 - name: Set up JDK 22 uses: actions/setup-java@v3 with: java-version: '22' distribution: 'temurin' - + # 2. Gradle Wrapper에 실행 권한을 부여합니다. - name: Grant execute permission for Gradle Wrapper run: chmod +x gradlew - - name: create resources folder if not exists - run: mkdir -p src/main/resources - - - name: set up application.properties - run: echo "${{ secrets.APPLICATION }}" > src/main/resources/application.properties - + # 3. Spring Boot 애플리케이션 빌드 - name: Build with Gradle uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 with: arguments: clean bootJar + # 4. Docker 이미지 빌드 - name: Docker image build - run: docker build -t ${{ secrets.DOCKER_USERNAME }}/classfit-dev . + run: docker build -t ${{ secrets.DOCKER_USERNAME }}/github-actions-demo . + # 5. DockerHub 로그인 - name: Docker login uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} + # 6. Docker Hub 이미지 푸시 - name: Docker Hub push - run: docker push ${{ secrets.DOCKER_USERNAME }}/classfit-dev + run: docker push ${{ secrets.DOCKER_USERNAME }}/github-actions-demo run-docker-image-on-ec2: needs: build-docker-image runs-on: self-hosted steps: + # 1. 최신 이미지를 풀받습니다 - name: Docker pull - run: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/classfit-dev + run: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/github-actions-demo + + # 2. 기존 컨테이너를 중지 및 삭제 - name: Stop and remove existing containers run: | - CONTAINER_IDS=$(sudo docker ps -aq) + CONTAINER_IDS=$(sudo docker ps -q) if [ -n "$CONTAINER_IDS" ]; then - sudo docker stop $CONTAINER_IDS || true - sudo docker rm $CONTAINER_IDS || true - else - echo "No containers to stop or remove." + sudo docker stop $CONTAINER_IDS + sudo docker rm $CONTAINER_IDS fi + # 3. 최신 이미지를 컨테이너화하여 실행시킵니다 - name: Run new container - run: sudo docker run —name classfit-dev —rm -d -p 8080:8080 -v /home/ec2-user/app/logs:/log ${{ secrets.DOCKER_USERNAME }}/classfit-dev + run: sudo docker run --name github-actions-demo --rm -d -p 8080:8080 ${{ secrets.DOCKER_USERNAME }}/github-actions-demo + # 4. 미사용 이미지를 정리합니다 - name: Clean up old Docker images run: sudo docker system prune -f From aa32366e52c7dca605d71499143743b8317cefa1 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Thu, 9 Jan 2025 22:55:27 +0900 Subject: [PATCH 08/28] =?UTF-8?q?[cicd]=20gradle.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 2d4333fc..9e3b79af 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -1,8 +1,8 @@ name: Java CI with Gradle -# 동작 조건 설정 : main 브랜치에 push 혹은 pull request가 발생할 경우 동작한다. + on: pull_request: - branches: [ "main" ] + branches: [ "master" ] permissions: contents: read From ef3556d6aff97a8759d40800a59fc9a255f3abee Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Thu, 9 Jan 2025 22:56:29 +0900 Subject: [PATCH 09/28] =?UTF-8?q?[cicd]=20gradle.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .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 9e3b79af..574d7947 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -1,7 +1,7 @@ name: Java CI with Gradle on: - pull_request: + push: branches: [ "master" ] permissions: From e891dc0a69f9abadc846bbf535f9127b257dc500 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Thu, 9 Jan 2025 23:34:18 +0900 Subject: [PATCH 10/28] =?UTF-8?q?[fix]=20=EC=8A=A4=EC=9B=A8=EA=B1=B0=20?= =?UTF-8?q?=EA=B2=BD=EB=A1=9C=20=EC=88=98=EC=A0=95=20#157?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/config/SwaggerController.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/classfit/example/classfit/common/config/SwaggerController.java b/src/main/java/classfit/example/classfit/common/config/SwaggerController.java index f939c570..8034dcad 100644 --- a/src/main/java/classfit/example/classfit/common/config/SwaggerController.java +++ b/src/main/java/classfit/example/classfit/common/config/SwaggerController.java @@ -5,7 +5,7 @@ @RestController public class SwaggerController { - @GetMapping("/swagger-ui/index.html") + @GetMapping("https://classfit.duckdns.org/swagger-ui/index.html") public String swaggerUi() { return "\n" + "\n" + @@ -14,17 +14,17 @@ public String swaggerUi() { " \n" + " \n" + " Swagger UI\n" + - " \n" + - " \n" + - " \n" + - " \n" + + " \n" + + " \n" + + " \n" + + " \n" + " \n" + "\n" + " \n" + "
\n" + - " \n" + - " \n" + - " \n" + + " \n" + + " \n" + + " \n" + " \n" + "\n"; } From 0db5ed1bfc025fe68f822c5b57d0c189878df0a6 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Thu, 9 Jan 2025 23:36:46 +0900 Subject: [PATCH 11/28] =?UTF-8?q?[fix]=20=EC=8A=A4=EC=9B=A8=EA=B1=B0=20?= =?UTF-8?q?=EA=B2=BD=EB=A1=9C=20=EC=88=98=EC=A0=95=20#157?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/classfit/common/config/SwaggerController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/classfit/example/classfit/common/config/SwaggerController.java b/src/main/java/classfit/example/classfit/common/config/SwaggerController.java index 8034dcad..f2abab8f 100644 --- a/src/main/java/classfit/example/classfit/common/config/SwaggerController.java +++ b/src/main/java/classfit/example/classfit/common/config/SwaggerController.java @@ -5,7 +5,7 @@ @RestController public class SwaggerController { - @GetMapping("https://classfit.duckdns.org/swagger-ui/index.html") + @GetMapping("/swagger-ui/index.html") public String swaggerUi() { return "\n" + "\n" + From e0bf5b56fc45f7e6ba9f0ae0aa376700d3869d34 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Thu, 9 Jan 2025 23:50:53 +0900 Subject: [PATCH 12/28] =?UTF-8?q?[fix]=20=EC=8A=A4=EC=9B=A8=EA=B1=B0=20?= =?UTF-8?q?=EA=B2=BD=EB=A1=9C=20=EC=88=98=EC=A0=95=20#157?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../classfit/common/config/SwaggerController.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/classfit/example/classfit/common/config/SwaggerController.java b/src/main/java/classfit/example/classfit/common/config/SwaggerController.java index f2abab8f..f8264801 100644 --- a/src/main/java/classfit/example/classfit/common/config/SwaggerController.java +++ b/src/main/java/classfit/example/classfit/common/config/SwaggerController.java @@ -14,17 +14,17 @@ public String swaggerUi() { " \n" + " \n" + " Swagger UI\n" + - " \n" + - " \n" + - " \n" + - " \n" + + " \n" + + " \n" + + " \n" + + " \n" + " \n" + "\n" + " \n" + "
\n" + - " \n" + - " \n" + - " \n" + + " \n" + + " \n" + + " \n" + " \n" + "\n"; } From 71f0da14f14ef92a64dc0b616753fdd3a1570fb3 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Fri, 10 Jan 2025 00:00:06 +0900 Subject: [PATCH 13/28] =?UTF-8?q?[fix]=20=EC=8A=A4=EC=9B=A8=EA=B1=B0=20?= =?UTF-8?q?=EA=B2=BD=EB=A1=9C=20=EC=88=98=EC=A0=95=20#157?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../classfit/common/config/SwaggerController.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/classfit/example/classfit/common/config/SwaggerController.java b/src/main/java/classfit/example/classfit/common/config/SwaggerController.java index f8264801..f939c570 100644 --- a/src/main/java/classfit/example/classfit/common/config/SwaggerController.java +++ b/src/main/java/classfit/example/classfit/common/config/SwaggerController.java @@ -14,17 +14,17 @@ public String swaggerUi() { " \n" + " \n" + " Swagger UI\n" + - " \n" + - " \n" + - " \n" + - " \n" + + " \n" + + " \n" + + " \n" + + " \n" + " \n" + "\n" + " \n" + "
\n" + - " \n" + - " \n" + - " \n" + + " \n" + + " \n" + + " \n" + " \n" + "\n"; } From d63a5aeb0fbabd000cabc0aa289fc56a3414ba80 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Fri, 10 Jan 2025 00:02:35 +0900 Subject: [PATCH 14/28] =?UTF-8?q?[fix]=20=EC=8A=A4=EC=9B=A8=EA=B1=B0=20?= =?UTF-8?q?=EA=B2=BD=EB=A1=9C=20=EC=88=98=EC=A0=95=20#157?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/config/SwaggerController.java | 39 +++++++++---------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/src/main/java/classfit/example/classfit/common/config/SwaggerController.java b/src/main/java/classfit/example/classfit/common/config/SwaggerController.java index f939c570..feff96a0 100644 --- a/src/main/java/classfit/example/classfit/common/config/SwaggerController.java +++ b/src/main/java/classfit/example/classfit/common/config/SwaggerController.java @@ -8,25 +8,24 @@ public class SwaggerController { @GetMapping("/swagger-ui/index.html") public String swaggerUi() { return "\n" + - "\n" + - "\n" + - " \n" + - " \n" + - " \n" + - " Swagger UI\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - "\n" + - " \n" + - "
\n" + - " \n" + - " \n" + - " \n" + - " \n" + - "\n"; + "\n" + + "\n" + + " \n" + + " \n" + + " \n" + + " Swagger UI\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "\n" + + " \n" + + "
\n" + + " \n" + + " \n" + + " \n" + + " \n" + + "\n"; } } - From 9e1c2fecc063e6a99cecdff87c2515391805f487 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Fri, 10 Jan 2025 19:09:45 +0900 Subject: [PATCH 15/28] =?UTF-8?q?[cicd]=20gradle.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 44d47cf0..37b0c933 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -13,7 +13,6 @@ jobs: steps: - uses: actions/checkout@v3 - # 1. Java 설정 - name: Set up JDK 22 uses: actions/setup-java@v3 with: @@ -70,4 +69,4 @@ jobs: # 4. 미사용 이미지를 정리합니다 - name: Clean up old Docker images - run: sudo docker system prune -f \ No newline at end of file + run: sudo docker system prune -f From 85bc55f576dd601dac9fc2a6f1d1500520d516a3 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Fri, 10 Jan 2025 19:47:36 +0900 Subject: [PATCH 16/28] =?UTF-8?q?[cicd]=20gradle.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 37b0c933..b0fc1cee 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -19,7 +19,6 @@ jobs: java-version: '22' distribution: 'temurin' - # 2. Gradle Wrapper에 실행 권한을 부여합니다. - name: Grant execute permission for Gradle Wrapper run: chmod +x gradlew From 22e9ee6bf20d67e968ca23209229f544d86229f7 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Fri, 10 Jan 2025 20:01:59 +0900 Subject: [PATCH 17/28] =?UTF-8?q?[cicd]=20gradle.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .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 b0fc1cee..d98ae869 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -22,7 +22,7 @@ jobs: - name: Grant execute permission for Gradle Wrapper run: chmod +x gradlew - # 3. Spring Boot 애플리케이션 빌드 + - name: Build with Gradle uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 with: From 4e1e9b037e568b634da63af38db96d8d5976bc90 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Fri, 10 Jan 2025 20:32:45 +0900 Subject: [PATCH 18/28] =?UTF-8?q?[cicd]=20gradle.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .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 d98ae869..cc5d906a 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -28,7 +28,7 @@ jobs: with: arguments: clean bootJar - # 4. Docker 이미지 빌드 + - name: Docker image build run: docker build -t ${{ secrets.DOCKER_USERNAME }}/github-actions-demo . From 444d685e24d90f3776c445e5b88749d95a5ab0d1 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Fri, 10 Jan 2025 20:45:22 +0900 Subject: [PATCH 19/28] =?UTF-8?q?[cicd]=20gradle.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .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 cc5d906a..503617fe 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -32,7 +32,7 @@ jobs: - name: Docker image build run: docker build -t ${{ secrets.DOCKER_USERNAME }}/github-actions-demo . - # 5. DockerHub 로그인 + - name: Docker login uses: docker/login-action@v2 with: From c2f6a94b864c764c11188eed61e822abadb8ef19 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Fri, 10 Jan 2025 20:56:27 +0900 Subject: [PATCH 20/28] =?UTF-8?q?[cicd]=20gradle.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle.yml | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 503617fe..49c75530 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -22,50 +22,49 @@ jobs: - name: Grant execute permission for Gradle Wrapper run: chmod +x gradlew - + - name: create resources folder if not exists + run: mkdir -p src/main/resources + + - name: set up application.properties + run: echo "${{ secrets.APPLICATION }}" > src/main/resources/application.properties + - name: Build with Gradle uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 with: arguments: clean bootJar - - name: Docker image build - run: docker build -t ${{ secrets.DOCKER_USERNAME }}/github-actions-demo . + run: docker build -t ${{ secrets.DOCKER_USERNAME }}/classfit-dev . - - name: Docker login uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - # 6. Docker Hub 이미지 푸시 - name: Docker Hub push - run: docker push ${{ secrets.DOCKER_USERNAME }}/github-actions-demo + run: docker push ${{ secrets.DOCKER_USERNAME }}/classfit-dev run-docker-image-on-ec2: needs: build-docker-image runs-on: self-hosted steps: - # 1. 최신 이미지를 풀받습니다 - name: Docker pull + run: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/classfit-dev - run: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/github-actions-demo - - # 2. 기존 컨테이너를 중지 및 삭제 - name: Stop and remove existing containers run: | - CONTAINER_IDS=$(sudo docker ps -q) + CONTAINER_IDS=$(sudo docker ps -aq) if [ -n "$CONTAINER_IDS" ]; then - sudo docker stop $CONTAINER_IDS - sudo docker rm $CONTAINER_IDS + sudo docker stop $CONTAINER_IDS || true + sudo docker rm $CONTAINER_IDS || true + else + echo "No containers to stop or remove." fi - # 3. 최신 이미지를 컨테이너화하여 실행시킵니다 - name: Run new container - run: sudo docker run --name github-actions-demo --rm -d -p 8080:8080 ${{ secrets.DOCKER_USERNAME }}/github-actions-demo + run: sudo docker run —name classfit-dev —rm -d -p 8080:8080 -v /home/ec2-user/app/logs:/log ${{ secrets.DOCKER_USERNAME }}/classfit-dev - # 4. 미사용 이미지를 정리합니다 - name: Clean up old Docker images run: sudo docker system prune -f From 05e65cfba05b325e4f8bec5739392958c51e7fdc Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Fri, 10 Jan 2025 21:00:08 +0900 Subject: [PATCH 21/28] =?UTF-8?q?[cicd]=20gradle.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .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 49c75530..520d2752 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -64,7 +64,7 @@ jobs: fi - name: Run new container - run: sudo docker run —name classfit-dev —rm -d -p 8080:8080 -v /home/ec2-user/app/logs:/log ${{ secrets.DOCKER_USERNAME }}/classfit-dev + run: sudo docker run --name classfit-dev --rm -d -p 8080:8080 -v /home/ec2-user/app/logs:/log ${{ secrets.DOCKER_USERNAME }}/classfit-dev - name: Clean up old Docker images run: sudo docker system prune -f From fc3d8ae2bd8c6c0d6362a063fbd145864ca80af0 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Fri, 10 Jan 2025 21:59:02 +0900 Subject: [PATCH 22/28] =?UTF-8?q?[cicd]=20gradle.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 520d2752..d37b66ff 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -1,5 +1,6 @@ name: Java CI with Gradle + on: push: branches: [ "master" ] From 9892fcfe5193e7515c67e3b0e1411107f908a790 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Fri, 10 Jan 2025 22:19:32 +0900 Subject: [PATCH 23/28] =?UTF-8?q?[cicd]=20gradle.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle.yml | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index d37b66ff..4c32ece1 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -1,9 +1,8 @@ name: Java CI with Gradle - on: - push: - branches: [ "master" ] + pull_request: + branches: [ "main" ] permissions: contents: read @@ -14,58 +13,67 @@ jobs: steps: - uses: actions/checkout@v3 + - name: Set up JDK 22 uses: actions/setup-java@v3 with: java-version: '22' distribution: 'temurin' + - name: Grant execute permission for Gradle Wrapper run: chmod +x gradlew + - name: create resources folder if not exists run: mkdir -p src/main/resources - name: set up application.properties run: echo "${{ secrets.APPLICATION }}" > src/main/resources/application.properties + - name: Build with Gradle uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 with: arguments: clean bootJar + - name: Docker image build - run: docker build -t ${{ secrets.DOCKER_USERNAME }}/classfit-dev . + run: docker build -t ${{ secrets.DOCKER_USERNAME }}/github-actions-demo . + - name: Docker login uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} + - name: Docker Hub push - run: docker push ${{ secrets.DOCKER_USERNAME }}/classfit-dev + run: docker push ${{ secrets.DOCKER_USERNAME }}/github-actions-demo run-docker-image-on-ec2: needs: build-docker-image runs-on: self-hosted steps: + - name: Docker pull - run: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/classfit-dev + run: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/github-actions-demo + - name: Stop and remove existing containers run: | - CONTAINER_IDS=$(sudo docker ps -aq) + CONTAINER_IDS=$(sudo docker ps -q) if [ -n "$CONTAINER_IDS" ]; then - sudo docker stop $CONTAINER_IDS || true - sudo docker rm $CONTAINER_IDS || true - else - echo "No containers to stop or remove." + sudo docker stop $CONTAINER_IDS + sudo docker rm $CONTAINER_IDS fi + - name: Run new container - run: sudo docker run --name classfit-dev --rm -d -p 8080:8080 -v /home/ec2-user/app/logs:/log ${{ secrets.DOCKER_USERNAME }}/classfit-dev + run: sudo docker run --name github-actions-demo --rm -d -p 80:80 ${{ secrets.DOCKER_USERNAME }}/github-actions-demo + - name: Clean up old Docker images run: sudo docker system prune -f From bbf6e7b5214a424339556df40a34df73a71e0380 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Fri, 10 Jan 2025 22:20:45 +0900 Subject: [PATCH 24/28] =?UTF-8?q?[cicd]=20gradle.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 4c32ece1..02218efd 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -1,8 +1,8 @@ name: Java CI with Gradle on: - pull_request: - branches: [ "main" ] + push: + branches: [ "master" ] permissions: contents: read From 89d086ca8ca1e22e60fa4519c3660023e13ce64d Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Fri, 10 Jan 2025 22:47:46 +0900 Subject: [PATCH 25/28] =?UTF-8?q?[cicd]=20gradle.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 02218efd..bc2ad3fa 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -1,5 +1,6 @@ name: Java CI with Gradle + on: push: branches: [ "master" ] From b40ea3d05058c43c485e7ea050f21b61f5b014d3 Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Sat, 11 Jan 2025 01:31:06 +0900 Subject: [PATCH 26/28] =?UTF-8?q?[cicd]=20gradle.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index bc2ad3fa..c181ce78 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -14,7 +14,6 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up JDK 22 uses: actions/setup-java@v3 with: From 8e90e704493315fc1e08676e16569e7eb932489c Mon Sep 17 00:00:00 2001 From: bangyewon <90364660+bangyewon@users.noreply.github.com> Date: Sat, 11 Jan 2025 01:37:09 +0900 Subject: [PATCH 27/28] =?UTF-8?q?[cicd]=20gradle.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .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 c181ce78..0d31f4c5 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -72,7 +72,7 @@ jobs: - name: Run new container - run: sudo docker run --name github-actions-demo --rm -d -p 80:80 ${{ secrets.DOCKER_USERNAME }}/github-actions-demo + run: sudo docker run --name github-actions-demo --rm -d -p 8080:8080 ${{ secrets.DOCKER_USERNAME }}/github-actions-demo - name: Clean up old Docker images From cf736d144cb316224fd167c3fe1ae834dcbc4970 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=B1=EC=9E=AC=ED=98=81?= Date: Mon, 13 Jan 2025 23:39:43 +0900 Subject: [PATCH 28/28] =?UTF-8?q?[hotfix]=20=EC=9B=8C=ED=81=AC=ED=94=8C?= =?UTF-8?q?=EB=A1=9C=EC=9A=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle.yml | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 0d31f4c5..7b16c6dc 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -1,6 +1,5 @@ name: Java CI with Gradle - on: push: branches: [ "master" ] @@ -20,35 +19,28 @@ jobs: java-version: '22' distribution: 'temurin' - - name: Grant execute permission for Gradle Wrapper run: chmod +x gradlew - - name: create resources folder if not exists run: mkdir -p src/main/resources - name: set up application.properties run: echo "${{ secrets.APPLICATION }}" > src/main/resources/application.properties - - name: Build with Gradle uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 with: arguments: clean bootJar - - - name: Docker image build run: docker build -t ${{ secrets.DOCKER_USERNAME }}/github-actions-demo . - - name: Docker login uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Docker Hub push run: docker push ${{ secrets.DOCKER_USERNAME }}/github-actions-demo @@ -57,23 +49,19 @@ jobs: runs-on: self-hosted steps: - - name: Docker pull run: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/github-actions-demo - - name: Stop and remove existing containers run: | - CONTAINER_IDS=$(sudo docker ps -q) + CONTAINER_IDS=$(sudo docker ps -aq) if [ -n "$CONTAINER_IDS" ]; then sudo docker stop $CONTAINER_IDS sudo docker rm $CONTAINER_IDS fi - - name: Run new container run: sudo docker run --name github-actions-demo --rm -d -p 8080:8080 ${{ secrets.DOCKER_USERNAME }}/github-actions-demo - - name: Clean up old Docker images - run: sudo docker system prune -f + run: sudo docker system prune -f \ No newline at end of file