From be0e761b1773e3c1fdbe73b2da370407480d9314 Mon Sep 17 00:00:00 2001 From: kunsanglee Date: Tue, 30 Jul 2024 11:52:05 +0900 Subject: [PATCH 01/10] =?UTF-8?q?refactor:=20CD=20workflow=20main,=20devel?= =?UTF-8?q?op=20=EB=B6=84=EB=A6=AC=20=EB=B0=8F=20dockerfile=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{backend-push.yml => backend-dev.yml} | 8 +- .github/workflows/backend-prod.yml | 74 +++++++++++++++++++ .github/workflows/backend-pull-request.yml | 2 +- server/Dockerfile | 2 +- server/src/main/resources/application.yml | 9 +++ server/src/main/resources/config | 1 + 6 files changed, 90 insertions(+), 6 deletions(-) rename .github/workflows/{backend-push.yml => backend-dev.yml} (80%) create mode 100644 .github/workflows/backend-prod.yml create mode 160000 server/src/main/resources/config diff --git a/.github/workflows/backend-push.yml b/.github/workflows/backend-dev.yml similarity index 80% rename from .github/workflows/backend-push.yml rename to .github/workflows/backend-dev.yml index c9c2316c8..8865939f0 100644 --- a/.github/workflows/backend-push.yml +++ b/.github/workflows/backend-dev.yml @@ -2,7 +2,7 @@ name: backend-push on: push: - branches: [ "main", "develop" ] + branches: [ "be-dev" ] paths: - 'server/**' @@ -52,7 +52,7 @@ jobs: - name: Build and push run: | docker buildx build --platform linux/arm64 -t \ - ${{ secrets.DOCKER_USERNAME }}/haengdong-backend-dev --push . + ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE_BE_DEV }} --push . deploy: needs: build @@ -68,7 +68,7 @@ jobs: fi - name: Docker Image pull - run: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/haengdong-backend-dev + run: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE_BE_DEV }} - name: Docker run - run: sudo docker run -d -p 8080:8080 --name haengdong-backend-dev ${{ secrets.DOCKER_USERNAME }}/haengdong-backend-dev + run: sudo docker run -d -p 8080:8080 -e SPRING_PROFILES_ACTIVE=dev --name haengdong-backend ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE_BE_DEV }} diff --git a/.github/workflows/backend-prod.yml b/.github/workflows/backend-prod.yml new file mode 100644 index 000000000..7728d6640 --- /dev/null +++ b/.github/workflows/backend-prod.yml @@ -0,0 +1,74 @@ +name: backend-push + +on: + push: + branches: [ "main" ] + paths: + - 'server/**' + +jobs: + build: + runs-on: ubuntu-latest + + defaults: + run: + shell: bash + working-directory: ./server + + permissions: + contents: read + + steps: + - name: CheckOut + uses: actions/checkout@v4 + with: + token: ${{secrets.CONFIG_SUBMODULE_TOKEN}} + submodules: true + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0 + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Test with Gradle Wrapper + run: ./gradlew clean build + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Set up Docker BuildX + uses: docker/setup-buildx-action@v3 + + - name: Build and push + run: | + docker buildx build --platform linux/arm64 -t \ + ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE_BE_PROD }} --push . + + deploy: + needs: build + runs-on: self-hosted + steps: + - name: Docker remove + run: | + CONTAINER_IDS=$(sudo docker ps -qa) + if [ -n "$CONTAINER_IDS" ]; then + sudo docker rm -f $CONTAINER_IDS + else + echo "No running containers found." + fi + + - name: Docker Image pull + run: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE_BE_PROD }} + + - name: Docker run + run: sudo docker run -d -p 8080:8080 -e SPRING_PROFILES_ACTIVE=prod --name haengdong-backend ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE_BE_PROD }} diff --git a/.github/workflows/backend-pull-request.yml b/.github/workflows/backend-pull-request.yml index 6ede1b600..797f88326 100644 --- a/.github/workflows/backend-pull-request.yml +++ b/.github/workflows/backend-pull-request.yml @@ -2,7 +2,7 @@ name: backend-pull-request on: pull_request: - branches: [ "main", "develop" ] + branches: [ "main", "be-dev" ] paths: - 'server/**' diff --git a/server/Dockerfile b/server/Dockerfile index 37e37d237..ae8c9c880 100644 --- a/server/Dockerfile +++ b/server/Dockerfile @@ -6,4 +6,4 @@ COPY /build/libs/*.jar /app/haengdong-0.0.1-SNAPSHOT.jar EXPOSE 8080 ENTRYPOINT ["java"] -CMD ["-Dspring.profiles.active=dev", "-jar", "haengdong-0.0.1-SNAPSHOT.jar"] +CMD ["-Dspring.profiles.active=${SPRING_PROFILES_ACTIVE}", "-jar", "haengdong-0.0.1-SNAPSHOT.jar"] diff --git a/server/src/main/resources/application.yml b/server/src/main/resources/application.yml index faf7a36f1..17d01950e 100644 --- a/server/src/main/resources/application.yml +++ b/server/src/main/resources/application.yml @@ -24,8 +24,17 @@ cors: --- +spring: + config: + import: classpath:config/application-prod.yml + activate: + on-profile: prod + +--- + spring: config: import: classpath:config/application-dev.yml activate: on-profile: dev + diff --git a/server/src/main/resources/config b/server/src/main/resources/config new file mode 160000 index 000000000..c12697b65 --- /dev/null +++ b/server/src/main/resources/config @@ -0,0 +1 @@ +Subproject commit c12697b650b8a8adf27fd66377f6e62bb6b8a49d From b515519fcb3601d9e0a78d3b8d8ca05c29828170 Mon Sep 17 00:00:00 2001 From: kunsanglee Date: Tue, 30 Jul 2024 11:55:51 +0900 Subject: [PATCH 02/10] =?UTF-8?q?refactor:=20trigger=20test=20=EB=B8=8C?= =?UTF-8?q?=EB=9E=9C=EC=B9=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/backend-dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/backend-dev.yml b/.github/workflows/backend-dev.yml index 8865939f0..3e8eedfb0 100644 --- a/.github/workflows/backend-dev.yml +++ b/.github/workflows/backend-dev.yml @@ -2,7 +2,7 @@ name: backend-push on: push: - branches: [ "be-dev" ] + branches: [ "be-dev", "feature/#147" ] paths: - 'server/**' From c96c07dd08438f0b6711e6f85e615c911299ba64 Mon Sep 17 00:00:00 2001 From: kunsanglee Date: Tue, 30 Jul 2024 12:00:15 +0900 Subject: [PATCH 03/10] =?UTF-8?q?refactor:=20feature/#147=20=EC=97=90=20pu?= =?UTF-8?q?sh=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/main/java/server/haengdong/HaengdongApplication.java | 1 + 1 file changed, 1 insertion(+) diff --git a/server/src/main/java/server/haengdong/HaengdongApplication.java b/server/src/main/java/server/haengdong/HaengdongApplication.java index 31b6e46e7..2bc9753bc 100644 --- a/server/src/main/java/server/haengdong/HaengdongApplication.java +++ b/server/src/main/java/server/haengdong/HaengdongApplication.java @@ -8,6 +8,7 @@ public class HaengdongApplication { public static void main(String[] args) { SpringApplication.run(HaengdongApplication.class, args); + } } From ed9f18b4b2d20a1d19492915bd5202669bcee1e9 Mon Sep 17 00:00:00 2001 From: kunsanglee Date: Tue, 30 Jul 2024 12:23:02 +0900 Subject: [PATCH 04/10] =?UTF-8?q?refactor:=20github=20actions=20self-hoste?= =?UTF-8?q?d=20runner=20tag=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/backend-dev.yml | 4 ++-- .github/workflows/backend-prod.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/backend-dev.yml b/.github/workflows/backend-dev.yml index 3e8eedfb0..9e56c7615 100644 --- a/.github/workflows/backend-dev.yml +++ b/.github/workflows/backend-dev.yml @@ -2,7 +2,7 @@ name: backend-push on: push: - branches: [ "be-dev", "feature/#147" ] + branches: [ "be-dev" ] paths: - 'server/**' @@ -56,7 +56,7 @@ jobs: deploy: needs: build - runs-on: self-hosted + runs-on: [ self-hosted, backend-dev ] steps: - name: Docker remove run: | diff --git a/.github/workflows/backend-prod.yml b/.github/workflows/backend-prod.yml index 7728d6640..ffc0b771a 100644 --- a/.github/workflows/backend-prod.yml +++ b/.github/workflows/backend-prod.yml @@ -56,7 +56,7 @@ jobs: deploy: needs: build - runs-on: self-hosted + runs-on: [ self-hosted, backend-prod ] steps: - name: Docker remove run: | From d386dccb0e475cdfbf50a6d25f15ec07e82cb079 Mon Sep 17 00:00:00 2001 From: kunsanglee Date: Tue, 30 Jul 2024 12:25:35 +0900 Subject: [PATCH 05/10] =?UTF-8?q?refactor:=20feature/#147=20runner=20?= =?UTF-8?q?=EA=B5=AC=EB=B6=84=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/backend-dev.yml | 2 +- server/src/main/java/server/haengdong/HaengdongApplication.java | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/backend-dev.yml b/.github/workflows/backend-dev.yml index 9e56c7615..08836fbed 100644 --- a/.github/workflows/backend-dev.yml +++ b/.github/workflows/backend-dev.yml @@ -2,7 +2,7 @@ name: backend-push on: push: - branches: [ "be-dev" ] + branches: [ "be-dev", "feature/#147" ] paths: - 'server/**' diff --git a/server/src/main/java/server/haengdong/HaengdongApplication.java b/server/src/main/java/server/haengdong/HaengdongApplication.java index 2bc9753bc..31b6e46e7 100644 --- a/server/src/main/java/server/haengdong/HaengdongApplication.java +++ b/server/src/main/java/server/haengdong/HaengdongApplication.java @@ -8,7 +8,6 @@ public class HaengdongApplication { public static void main(String[] args) { SpringApplication.run(HaengdongApplication.class, args); - } } From ec7141efaed6a545bc24868e4ca073e2eec7fdcc Mon Sep 17 00:00:00 2001 From: kunsanglee Date: Tue, 30 Jul 2024 12:27:40 +0900 Subject: [PATCH 06/10] =?UTF-8?q?refactor:=20feature/#147=20prod=20runner?= =?UTF-8?q?=20=EA=B5=AC=EB=B6=84=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/backend-dev.yml | 2 +- .github/workflows/backend-prod.yml | 2 +- server/src/main/java/server/haengdong/HaengdongApplication.java | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/backend-dev.yml b/.github/workflows/backend-dev.yml index 08836fbed..9e56c7615 100644 --- a/.github/workflows/backend-dev.yml +++ b/.github/workflows/backend-dev.yml @@ -2,7 +2,7 @@ name: backend-push on: push: - branches: [ "be-dev", "feature/#147" ] + branches: [ "be-dev" ] paths: - 'server/**' diff --git a/.github/workflows/backend-prod.yml b/.github/workflows/backend-prod.yml index ffc0b771a..41e3b032a 100644 --- a/.github/workflows/backend-prod.yml +++ b/.github/workflows/backend-prod.yml @@ -2,7 +2,7 @@ name: backend-push on: push: - branches: [ "main" ] + branches: [ "main", "feature/#147" ] paths: - 'server/**' diff --git a/server/src/main/java/server/haengdong/HaengdongApplication.java b/server/src/main/java/server/haengdong/HaengdongApplication.java index 31b6e46e7..faf32b495 100644 --- a/server/src/main/java/server/haengdong/HaengdongApplication.java +++ b/server/src/main/java/server/haengdong/HaengdongApplication.java @@ -8,6 +8,7 @@ public class HaengdongApplication { public static void main(String[] args) { SpringApplication.run(HaengdongApplication.class, args); + } } From 1f62d66a79da01ede4cdb5705ff40d2a2d99eef6 Mon Sep 17 00:00:00 2001 From: kunsanglee Date: Tue, 30 Jul 2024 14:42:27 +0900 Subject: [PATCH 07/10] =?UTF-8?q?refactor:=20feature/#147=20prod=20runner?= =?UTF-8?q?=20=EA=B5=AC=EB=B6=84=20=ED=85=8C=EC=8A=A4=ED=8A=B82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/main/java/server/haengdong/HaengdongApplication.java | 1 - 1 file changed, 1 deletion(-) diff --git a/server/src/main/java/server/haengdong/HaengdongApplication.java b/server/src/main/java/server/haengdong/HaengdongApplication.java index faf32b495..31b6e46e7 100644 --- a/server/src/main/java/server/haengdong/HaengdongApplication.java +++ b/server/src/main/java/server/haengdong/HaengdongApplication.java @@ -8,7 +8,6 @@ public class HaengdongApplication { public static void main(String[] args) { SpringApplication.run(HaengdongApplication.class, args); - } } From 4e7b9835448b9c0956552ec5e87666ae95e8f26f Mon Sep 17 00:00:00 2001 From: kunsanglee Date: Tue, 30 Jul 2024 14:52:48 +0900 Subject: [PATCH 08/10] =?UTF-8?q?refactor:=20feature/#147=20prod=20runner?= =?UTF-8?q?=20=EA=B5=AC=EB=B6=84=20=ED=85=8C=EC=8A=A4=ED=8A=B83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitmodules | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitmodules b/.gitmodules index a067fc391..d013a93bc 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,4 @@ [submodule "server/src/main/resources/config"] + branch = main path = server/src/main/resources/config url = https://github.com/woowacourse-teams/2024-haeng-dong-config.git From ad7c1efd3f0cbe4fe21b7b54298ed5de898323d6 Mon Sep 17 00:00:00 2001 From: kunsanglee Date: Tue, 30 Jul 2024 14:53:33 +0900 Subject: [PATCH 09/10] =?UTF-8?q?refactor:=20feature/#147=20prod=20runner?= =?UTF-8?q?=20=EA=B5=AC=EB=B6=84=20=ED=85=8C=EC=8A=A4=ED=8A=B83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/main/resources/config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/main/resources/config b/server/src/main/resources/config index c12697b65..c946d00b8 160000 --- a/server/src/main/resources/config +++ b/server/src/main/resources/config @@ -1 +1 @@ -Subproject commit c12697b650b8a8adf27fd66377f6e62bb6b8a49d +Subproject commit c946d00b8f35ee39446f780cc2cf3983461cd38c From 5035f03fca82280c8a8d9480326cdbb23e6b9ecb Mon Sep 17 00:00:00 2001 From: kunsanglee Date: Tue, 30 Jul 2024 16:36:53 +0900 Subject: [PATCH 10/10] =?UTF-8?q?refactor:=20prod,=20dev=20yml=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC=20=EC=99=84=EB=A3=8C=20=EB=B0=8F=20=EC=84=9C=EB=B2=84?= =?UTF-8?q?=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/backend-prod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/backend-prod.yml b/.github/workflows/backend-prod.yml index 41e3b032a..ffc0b771a 100644 --- a/.github/workflows/backend-prod.yml +++ b/.github/workflows/backend-prod.yml @@ -2,7 +2,7 @@ name: backend-push on: push: - branches: [ "main", "feature/#147" ] + branches: [ "main" ] paths: - 'server/**'