diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index b8eaa750..bcbb29d2 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -35,9 +35,16 @@ jobs: - name: Build frontend into Host static assets run: | pnpm install --frozen-lockfile - VITE_APP_VERSION="${GITHUB_SHA::7}" pnpm build + VERSION_DATE="$(TZ=Asia/Seoul date +%Y.%m.%d)" + RELEASE_COUNT="$(git ls-remote --tags origin "refs/tags/v${VERSION_DATE}.*" | wc -l | tr -d ' ')" + VERSION_SEQUENCE="$((RELEASE_COUNT + 1))" + APP_VERSION="${VERSION_DATE}.${VERSION_SEQUENCE}.${GITHUB_SHA::10}" + echo "VITE_APP_VERSION=${APP_VERSION}" >> "$GITHUB_ENV" + echo "release_version=${APP_VERSION}" + VITE_APP_VERSION="${APP_VERSION}" pnpm build grep -R -q 'app-version' dist grep -R -q 'UI contract 4.0' dist + grep -R -q "${APP_VERSION}" dist find ../src/KArtSell.Host/wwwroot -mindepth 1 -delete cp -R dist/. ../src/KArtSell.Host/wwwroot/ working-directory: frontend diff --git a/docs/CURRENT/DEPLOY_FRONTEND_ARTIFACT_CONTRACT.md b/docs/CURRENT/DEPLOY_FRONTEND_ARTIFACT_CONTRACT.md index 18508167..d62ca867 100644 --- a/docs/CURRENT/DEPLOY_FRONTEND_ARTIFACT_CONTRACT.md +++ b/docs/CURRENT/DEPLOY_FRONTEND_ARTIFACT_CONTRACT.md @@ -8,7 +8,13 @@ ## Decision -배포 workflow는 Host publish 전에 `pnpm install --frozen-lockfile`과 `VITE_APP_VERSION=${GITHUB_SHA::7} pnpm build`를 실행한다. 생성된 `frontend/dist`를 Host `wwwroot`에 복사하고, `app-version`과 `UI contract 4.0` marker가 없으면 배포를 중단한다. +배포 workflow는 Host publish 전에 다음 규칙으로 버전을 계산하고 frontend를 재생성한다. + +```text +YYYY.MM.DD.<당일 release 순번>. +``` + +당일 순번은 `vYYYY.MM.DD.*` release tag 개수에 1을 더해 계산한다. 예: `2026.08.06.1.acaa731b3f`. 생성된 `frontend/dist`를 Host `wwwroot`에 복사하고, `app-version`, `UI contract 4.0`, 계산된 전체 버전 marker가 없으면 배포를 중단한다. ## Evidence / Unknown