From 6334f776a7a2917391fc707f806dc81316cf5c5a Mon Sep 17 00:00:00 2001 From: manNomi Date: Tue, 2 Jun 2026 16:56:30 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20=EB=8C=80=ED=95=99=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EB=A6=B4=EB=A6=AC=EC=A6=88=20=ED=83=80=EA=B9=83=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/release.yml | 12 ++++++++++-- docs/git-cicd.md | 14 ++++++++++++- docs/university-multizone-deployment.md | 26 +++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 32447364..c813d833 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,14 +7,16 @@ on: workflow_dispatch: inputs: target: - description: "Promote target" + description: "Promote target (both keeps the legacy web+admin selection)" required: true - default: "both" + default: "all" type: choice options: + - all - both - web - admin + - university force_redeploy: description: "When up to date, skip divergence and print manual redeploy guidance" required: true @@ -71,6 +73,12 @@ jobs: admin) RELEASE_BRANCHES="release-admin" ;; + university) + RELEASE_BRANCHES="release-university" + ;; + all) + RELEASE_BRANCHES="release-web release-admin release-university" + ;; both) RELEASE_BRANCHES="release-web release-admin" ;; diff --git a/docs/git-cicd.md b/docs/git-cicd.md index 33e9448a..1101a5d5 100644 --- a/docs/git-cicd.md +++ b/docs/git-cicd.md @@ -41,4 +41,16 @@ GitHub Actions, Vercel를 사용하여 CI/CD를 관리합니다. main 브랜치에 push가 되면 자동으로 CI가 진행되어 stage 환경에 배포됩니다. -Github Actions의 'Build and Vercel Production Deployment' 를 가동시키면 CD가 진행되어 production 환경에 배포됩니다. +Github Actions의 `Promote Main to Release Branches`를 가동시키면 선택한 release branch가 main으로 갱신되고, 각 Vercel Project의 production 환경에 배포됩니다. + +- `release-web`: web production 배포 +- `release-admin`: admin production 배포 +- `release-university`: university-web production 배포 + +릴리즈 workflow의 target은 다음과 같이 사용합니다. + +- `all`: web, admin, university-web 전체 릴리즈 +- `both`: 기존 호환용 web + admin 릴리즈 +- `web`: web만 릴리즈 +- `admin`: admin만 릴리즈 +- `university`: university-web만 릴리즈 diff --git a/docs/university-multizone-deployment.md b/docs/university-multizone-deployment.md index 30b494b7..c685586f 100644 --- a/docs/university-multizone-deployment.md +++ b/docs/university-multizone-deployment.md @@ -63,6 +63,32 @@ Vercel에서는 같은 Git repository를 두 개의 Project로 연결한다. University project의 직접 배포 도메인은 검색엔진에 노출하지 않는다. 실제 사용자 URL은 main domain의 rewrite를 통해 제공한다. +## Release 배포 + +production 릴리즈는 GitHub Actions `Promote Main to Release Branches` workflow로 release branch를 갱신해 Vercel 배포를 트리거한다. + +- Main Web Project production branch: `release-web` +- Admin Project production branch: `release-admin` +- University Web Project production branch: `release-university` + +workflow target은 다음과 같이 사용한다. + +- `all`: `release-web`, `release-admin`, `release-university`를 모두 main으로 갱신 +- `university`: `release-university`만 main으로 갱신 +- `both`: 기존 호환용으로 `release-web`, `release-admin`만 갱신 + +production web project의 `UNIVERSITY_WEB_DOMAIN`은 university web production origin을 가리켜야 한다. 예를 들어 사용자 production URL이 `https://www.solid-connection.com/university`라면 rewrite 대상은 별도 university web production origin이다. + +```bash +UNIVERSITY_WEB_DOMAIN=https:// +``` + +production university web project의 `NEXT_PUBLIC_WEB_URL`은 실제 사용자가 접근하는 main web production URL을 가리킨다. + +```bash +NEXT_PUBLIC_WEB_URL=https://www.solid-connection.com +``` + ## Local Development 터미널 두 개에서 실행한다.