From 8ac539f4b0404a1105877d37f132f45259f950b2 Mon Sep 17 00:00:00 2001 From: eun-byeol <62530884+eun-byeol@users.noreply.github.com> Date: Tue, 3 Dec 2024 20:27:29 +0900 Subject: [PATCH 1/8] =?UTF-8?q?chore:=20=EC=9A=B4=EC=98=81=20=EC=84=9C?= =?UTF-8?q?=EB=B2=84=20=EB=A7=88=EC=9D=B4=EA=B7=B8=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EC=85=98=20=EC=9E=91=EC=97=85=20=EB=B0=8F=20DB=20=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=20=EC=9D=B4=EB=8F=99=20(#924)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: prod datasource 설정 변경 * chore: prod v2 cd 스크립트 추가 * chore: dockerfile default profile 변경 * fix: prod datasource 암호문 변경 * chore: prod v2 트리거 수정 * chore: prod v2 스크립트 jasypt 변경 * chore: prod v2 TZ 추가 * chore: prod v2 롤백 작업 추가 * style: 개행 제거 * chore: cd prod v2 트리거 브랜치 main으로 수정 --- .github/workflows/backend-cd-prod-v2.yml | 125 ++++++++++++++++++ backend/Dockerfile | 3 +- .../src/main/resources/application-prod.yml | 14 +- 3 files changed, 134 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/backend-cd-prod-v2.yml diff --git a/.github/workflows/backend-cd-prod-v2.yml b/.github/workflows/backend-cd-prod-v2.yml new file mode 100644 index 000000000..73b29f75a --- /dev/null +++ b/.github/workflows/backend-cd-prod-v2.yml @@ -0,0 +1,125 @@ +name: backend-cd-prod-v2 + +on: + pull_request: + branches: + - main + types: + - closed + +env: + DOCKERHUB_REPOSITORY: ody-official + +jobs: + build-and-push: + if: github.event.pull_request.merged == true && (startsWith(github.event.pull_request.head.ref, 'release-be/') || startsWith(github.event.pull_request.head.ref, 'hotfix-be/')) + + runs-on: ubuntu-latest + env: + TZ: 'Asia/Seoul' + + defaults: + run: + working-directory: backend + + steps: + - uses: actions/checkout@v4 + with: + ref: main + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + - name: Check system timezone + run: | + echo "Current date and time: $(date)" + echo "TZ environment variable: $TZ" + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3 + + - name: Clean Build With Gradle Wrapper + run: ./gradlew clean build + + - name: Publish Test Results + uses: EnricoMi/publish-unit-test-result-action@v2 + if: always() + with: + files: ${{ github.workspace }}/backend/build/test-results/**/*.xml + + - name: JUnit Report Action + uses: mikepenz/action-junit-report@v4 + if: always() + with: + report_paths: ${{ github.workspace }}/backend/build/test-results/**/*.xml + + - name: Setup Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + + - name: Back Up Image For Rollback + run: | + docker pull ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:prod-latest || true + docker tag ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:prod-latest ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:prod-previous || true + docker push ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:prod-previous || true + + - name: Docker Image Build And Push + run: docker build --platform linux/arm64 -t ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:${{ github.sha }}-prod_v2 -f Dockerfile . --push + + pull-and-deploy: + needs: build-and-push + runs-on: prod + steps: + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + + - name: Clean Up Legacy Image + run: | + docker compose down || true + docker rmi $(docker images -q) -f || true + + - name: Docker Compose up + run: | + export DOCKERHUB_USERNAME=${{ secrets.DOCKERHUB_USERNAME }} + export DOCKERHUB_REPOSITORY=$DOCKERHUB_REPOSITORY + export PROD_MYSQL_PASSWORD=${{ secrets.PROD_MYSQL_PASSWORD }} + export JASYPT_ENCRYPTOR_PASSWORD=${{ secrets.JASYPT_PASSWORD }} + export TAG=${{ github.sha }}-prod_v2 + docker compose up -d + + #TODO: 도메인 연결 시, health check 필요 + + - name: Rollback if Health Check fails + if: failure() + run: | + docker compose down || true + docker rmi $(docker images -q) -f || true + docker pull ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:prod-previous + + export DOCKERHUB_USERNAME=${{ secrets.DOCKERHUB_USERNAME }} + export DOCKERHUB_REPOSITORY=$DOCKERHUB_REPOSITORY + export PROD_MYSQL_PASSWORD=${{ secrets.PROD_MYSQL_PASSWORD }} + export JASYPT_ENCRYPTOR_PASSWORD=${{ secrets.JASYPT_PASSWORD }} + export TAG=prod-previous + docker compose up -d + + - name: Tag successful deployment as latest + if: success() + run: | + docker tag ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:${{ github.sha }}-prod_v2 ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:prod-latest + docker push ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:prod-latest + + - name: Check Docker Process + if: always() + run: docker ps diff --git a/backend/Dockerfile b/backend/Dockerfile index 489d00862..956b9bc87 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -2,7 +2,8 @@ FROM openjdk:17-jdk ARG JAR_FILE=./build/libs/ody-backend-0.0.1-SNAPSHOT.jar -ENV SPRING_PROFILES_ACTIVE=dev +ENV SPRING_PROFILES_ACTIVE=prod +# dev로 변경 ENV JASYPT_ENCRYPTOR_PASSWORD=${JASYPT_ENCRYPTOR_PASSWORD} COPY ${JAR_FILE} ody-backend.jar diff --git a/backend/src/main/resources/application-prod.yml b/backend/src/main/resources/application-prod.yml index 5ab973aeb..404606cfc 100644 --- a/backend/src/main/resources/application-prod.yml +++ b/backend/src/main/resources/application-prod.yml @@ -8,17 +8,17 @@ spring: datasource: write: driver-class-name: com.mysql.cj.jdbc.Driver - jdbc-url: ENC(/pYkPoMxvv/cFWWYEEIJ1/7gtMSjD9WKhM4oSIUEiK3WGRrcXZGELR8s+ozO5hmimO3U99cs3yMKf5B/5uh7RLk4wC3W1IuZ3F0oX3hSEJeq16YkxR1okYZokeE3mZXTxcOHBb3krNg=) - username: ENC(Pjtz7HDMEVm9ScNAjaDEqA==) - password: ENC(9yYOk4n/7co8h0HDfOA20tduvw3htCFa) + jdbc-url: ENC(+p2DZSe9yNp28DPB+6F7aERvNdgI9vTRrbpU5C5RmKIkrZaNNBTThg/Kb2xg1M1qrtOhYVLtbFnLLbiXUKIfmRPls9py5cf1eO/sAER4Rqpx9oxMQ8m75pOqw/L3CKzAMlL7/TvoXDB0HIvkeYejqg==) + username: ENC(YZ2LkaSgfkD9S8m67TunJw==) + password: ENC(yjnFbKAlVVvzzQuWNECa7DcpWubhBn0Q) read: driver-class-name: com.mysql.cj.jdbc.Driver - jdbc-url: ENC(Ho2WMst/QlNJngqZ1nnRiQIaytH55rjohNVg/5W14vhcd88rAhk16y1yO3zzorKNGSsYV95t/lChWuFA5ivEz4Rh5NaZHjxddhvs1T7HHltl/eC5V1bhPh3+ck98Lk2iil0+RljDy+I=) - username: ENC(Pjtz7HDMEVm9ScNAjaDEqA==) - password: ENC(9yYOk4n/7co8h0HDfOA20tduvw3htCFa) + jdbc-url: ENC(+p2DZSe9yNp28DPB+6F7aERvNdgI9vTRrbpU5C5RmKIkrZaNNBTThg/Kb2xg1M1qrtOhYVLtbFnLLbiXUKIfmRPls9py5cf1eO/sAER4Rqpx9oxMQ8m75pOqw/L3CKzAMlL7/TvoXDB0HIvkeYejqg==) + username: ENC(YZ2LkaSgfkD9S8m67TunJw==) + password: ENC(yjnFbKAlVVvzzQuWNECa7DcpWubhBn0Q) flyway: baseline-version: 2 - + log: file: path: /ody-prod-logs From 2247324418e1005dd886b5161501597fe6043e55 Mon Sep 17 00:00:00 2001 From: eun-byeol Date: Fri, 3 Jan 2025 17:18:55 +0900 Subject: [PATCH 2/8] =?UTF-8?q?chore:=20dockerfile=20profile=20=EB=B3=80?= =?UTF-8?q?=EC=88=98=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index 956b9bc87..9196fa4f4 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -2,8 +2,8 @@ FROM openjdk:17-jdk ARG JAR_FILE=./build/libs/ody-backend-0.0.1-SNAPSHOT.jar -ENV SPRING_PROFILES_ACTIVE=prod -# dev로 변경 +ENV SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE} + ENV JASYPT_ENCRYPTOR_PASSWORD=${JASYPT_ENCRYPTOR_PASSWORD} COPY ${JAR_FILE} ody-backend.jar From 863193bfa5d11e3104249cce23e590a8fcd607f0 Mon Sep 17 00:00:00 2001 From: eun-byeol Date: Fri, 3 Jan 2025 17:19:09 +0900 Subject: [PATCH 3/8] =?UTF-8?q?chore:=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=ED=8A=B8=EB=A6=AC=EA=B1=B0=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 --- .github/workflows/backend-cd-prod-v2.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/backend-cd-prod-v2.yml b/.github/workflows/backend-cd-prod-v2.yml index 73b29f75a..db65866cf 100644 --- a/.github/workflows/backend-cd-prod-v2.yml +++ b/.github/workflows/backend-cd-prod-v2.yml @@ -1,18 +1,20 @@ name: backend-cd-prod-v2 on: - pull_request: + push: +# pull_request: branches: - - main - types: - - closed +# - main + - feature/942 +# types: +# - closed env: DOCKERHUB_REPOSITORY: ody-official jobs: build-and-push: - if: github.event.pull_request.merged == true && (startsWith(github.event.pull_request.head.ref, 'release-be/') || startsWith(github.event.pull_request.head.ref, 'hotfix-be/')) +# if: github.event.pull_request.merged == true && (startsWith(github.event.pull_request.head.ref, 'release-be/') || startsWith(github.event.pull_request.head.ref, 'hotfix-be/')) runs-on: ubuntu-latest env: @@ -24,8 +26,8 @@ jobs: steps: - uses: actions/checkout@v4 - with: - ref: main +# with: +# ref: main - name: Set up JDK 17 uses: actions/setup-java@v4 From 1bc4694ddafcb3ea7dba933c56b290608f0d5656 Mon Sep 17 00:00:00 2001 From: eun-byeol Date: Fri, 3 Jan 2025 17:27:22 +0900 Subject: [PATCH 4/8] =?UTF-8?q?chore:=20=EC=9D=B4=EC=A0=84=20=EB=B2=84?= =?UTF-8?q?=EC=A0=84=EC=9D=98=20prod=20cd=20=ED=8C=8C=EC=9D=BC=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/backend-cd-prod.yml | 137 -------------------------- 1 file changed, 137 deletions(-) delete mode 100644 .github/workflows/backend-cd-prod.yml diff --git a/.github/workflows/backend-cd-prod.yml b/.github/workflows/backend-cd-prod.yml deleted file mode 100644 index ab4524b76..000000000 --- a/.github/workflows/backend-cd-prod.yml +++ /dev/null @@ -1,137 +0,0 @@ -name: backend-cd-prod - -on: - pull_request: - branches: - - main - types: - - closed - -env: - DOCKERHUB_REPOSITORY: ody-official - DOCKER_CONTAINER_NAME: ody-prod-app - -jobs: - build-and-push: - if: github.event.pull_request.merged == true && startsWith(github.event.pull_request.head.ref, 'release-be/') - runs-on: ubuntu-latest - env: - TZ: 'Asia/Seoul' - - defaults: - run: - working-directory: backend - - steps: - - uses: actions/checkout@v4 - with: - ref: main - - - name: Set up JDK 17 - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'temurin' - - - name: Check system timezone - run: | - echo "Current date and time: $(date)" - echo "TZ environment variable: $TZ" - - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v3 - - - name: Clean Build With Gradle Wrapper - run: ./gradlew clean build - - - name: Publish Test Results - uses: EnricoMi/publish-unit-test-result-action@v2 - if: always() - with: - files: ${{ github.workspace }}/backend/build/test-results/**/*.xml - - - name: JUnit Report Action - uses: mikepenz/action-junit-report@v4 - if: always() - with: - report_paths: ${{ github.workspace }}/backend/build/test-results/**/*.xml - - - name: Setup Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - - - name: Back Up Image For Rollback - run: | - docker pull ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:latest || true - docker tag ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:latest ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:previous || true - docker push ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:previous || true - - - name: Docker Image Build And Push - run: docker build --platform linux/arm64 -t ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:${{ github.sha }}-prod -f Dockerfile . --build-arg JASYPT_ENCRYPTOR_PASSWORD=${{ secrets.JASYPT_PASSWORD }} --push - - pull-and-deploy: - needs: build-and-push - - runs-on: ${{ matrix.environment }} - - strategy: - max-parallel: 1 # 직렬처리 - matrix: - environment: [ prod-a, prod-b ] - - steps: - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - - - name: Clean Up Legacy Image And Pull - run: | - docker image prune -a -f - docker pull --platform linux/arm64 ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:${{ github.sha }}-prod - - - name: Set up Container And Run Docker Image - run: | - docker stop $DOCKER_CONTAINER_NAME || true - docker rm $DOCKER_CONTAINER_NAME || true - docker run -d --platform linux/arm64 --name $DOCKER_CONTAINER_NAME -v /var/logs/ody-prod-logs:/ody-prod-logs -p 80:8080 -e SPRING_PROFILES_ACTIVE=prod -e JASYPT_ENCRYPTOR_PASSWORD=${{ secrets.JASYPT_PASSWORD }} ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:${{ github.sha }}-prod - - - name: Health Check with Retry - uses: nick-invision/retry@v2 - with: - timeout_minutes: 1 - max_attempts: 5 - retry_wait_seconds: 6 - command: | - response=$(curl -s https://prod.oody.site/actuator/health) - status=$(echo $response | jq -r '.status') - if [ "$status" = "UP" ]; then - echo "Status is UP. Continuing..." - exit 0 - else - echo "Status is NOT UP." - exit 1 - fi - - - name: Rollback if Health Check fails - if: failure() - run: | - docker stop $DOCKER_CONTAINER_NAME || true - docker rm $DOCKER_CONTAINER_NAME || true - docker run -d --platform linux/arm64 --name $DOCKER_CONTAINER_NAME -v /var/logs/ody-prod-logs:/ody-prod-logs -p 80:8080 -e SPRING_PROFILES_ACTIVE=prod -e JASYPT_ENCRYPTOR_PASSWORD=${{ secrets.JASYPT_PASSWORD }} ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:previous - - - name: Tag successful deployment as latest - if: success() - run: | - docker tag ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:${{ github.sha }}-prod ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:latest - docker push ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:latest - - - name: Check Docker Process - if: always() - run: docker ps From d62bb0309fb7fab98dea229d29f8754cd7961edd Mon Sep 17 00:00:00 2001 From: eun-byeol Date: Fri, 3 Jan 2025 17:27:41 +0900 Subject: [PATCH 5/8] =?UTF-8?q?chore:=20prod=20cd=20health=20check=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/backend-cd-prod-v2.yml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/.github/workflows/backend-cd-prod-v2.yml b/.github/workflows/backend-cd-prod-v2.yml index db65866cf..3bd998c4f 100644 --- a/.github/workflows/backend-cd-prod-v2.yml +++ b/.github/workflows/backend-cd-prod-v2.yml @@ -100,7 +100,22 @@ jobs: export TAG=${{ github.sha }}-prod_v2 docker compose up -d - #TODO: 도메인 연결 시, health check 필요 + - name: Health Check with Retry + uses: nick-invision/retry@v2 + with: + timeout_minutes: 1 + max_attempts: 5 + retry_wait_seconds: 6 + command: | + response=$(curl -s https://prod.oody.site/actuator/health) + status=$(echo $response | jq -r '.status') + if [ "$status" = "UP" ]; then + echo "Status is UP. Continuing..." + exit 0 + else + echo "Status is NOT UP." + exit 1 + fi - name: Rollback if Health Check fails if: failure() From a968e809200864e1bb6fe8a39f7bf759d0bcbd4e Mon Sep 17 00:00:00 2001 From: eun-byeol Date: Fri, 3 Jan 2025 17:39:41 +0900 Subject: [PATCH 6/8] =?UTF-8?q?chore:=20prod=20cd=20=ED=8A=B8=EB=A6=AC?= =?UTF-8?q?=EA=B1=B0=20=EB=B3=B5=EA=B5=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/backend-cd-prod-v2.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/backend-cd-prod-v2.yml b/.github/workflows/backend-cd-prod-v2.yml index 3bd998c4f..3effa83b8 100644 --- a/.github/workflows/backend-cd-prod-v2.yml +++ b/.github/workflows/backend-cd-prod-v2.yml @@ -2,19 +2,18 @@ name: backend-cd-prod-v2 on: push: -# pull_request: + pull_request: branches: -# - main - - feature/942 -# types: -# - closed + - main + types: + - closed env: DOCKERHUB_REPOSITORY: ody-official jobs: build-and-push: -# if: github.event.pull_request.merged == true && (startsWith(github.event.pull_request.head.ref, 'release-be/') || startsWith(github.event.pull_request.head.ref, 'hotfix-be/')) + if: github.event.pull_request.merged == true && (startsWith(github.event.pull_request.head.ref, 'release-be/') || startsWith(github.event.pull_request.head.ref, 'hotfix-be/')) runs-on: ubuntu-latest env: @@ -26,8 +25,8 @@ jobs: steps: - uses: actions/checkout@v4 -# with: -# ref: main + with: + ref: main - name: Set up JDK 17 uses: actions/setup-java@v4 From d8e10ba3588ce19ef0e1d41c85575163fb483040 Mon Sep 17 00:00:00 2001 From: eun-byeol Date: Fri, 3 Jan 2025 17:41:16 +0900 Subject: [PATCH 7/8] =?UTF-8?q?chore:=20prod=20cd=20=ED=8C=8C=EC=9D=BC?= =?UTF-8?q?=EB=AA=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflows/{backend-cd-prod-v2.yml => backend-cd-prod.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .github/workflows/{backend-cd-prod-v2.yml => backend-cd-prod.yml} (99%) diff --git a/.github/workflows/backend-cd-prod-v2.yml b/.github/workflows/backend-cd-prod.yml similarity index 99% rename from .github/workflows/backend-cd-prod-v2.yml rename to .github/workflows/backend-cd-prod.yml index 3effa83b8..893c8b3d9 100644 --- a/.github/workflows/backend-cd-prod-v2.yml +++ b/.github/workflows/backend-cd-prod.yml @@ -1,4 +1,4 @@ -name: backend-cd-prod-v2 +name: backend-cd-prod on: push: From 419ab25d69d30735a7cb0dc1fba1529a894cbc40 Mon Sep 17 00:00:00 2001 From: eun-byeol Date: Fri, 3 Jan 2025 20:59:50 +0900 Subject: [PATCH 8/8] =?UTF-8?q?chore:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=ED=8A=B8=EB=A6=AC=EA=B1=B0=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/backend-cd-prod.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/backend-cd-prod.yml b/.github/workflows/backend-cd-prod.yml index 893c8b3d9..86be861aa 100644 --- a/.github/workflows/backend-cd-prod.yml +++ b/.github/workflows/backend-cd-prod.yml @@ -1,7 +1,6 @@ name: backend-cd-prod on: - push: pull_request: branches: - main