fix(docs): restore GitHub Pages deployment for v6.0.0#160
Merged
Palbahngmiyine merged 4 commits intosolapi:masterfrom Apr 20, 2026
Merged
fix(docs): restore GitHub Pages deployment for v6.0.0#160Palbahngmiyine merged 4 commits intosolapi:masterfrom
Palbahngmiyine merged 4 commits intosolapi:masterfrom
Conversation
`pnpm run docs`(typedoc)가 tsconfig의 include(src + test) 기준으로 전체 TypeScript 컴파일을 수행하다가 4개 타입 에러로 실패하여, v6.0.0 이후 GitHub Pages 문서 배포가 막혀 있었다. CI는 Biome/Vitest/tsup(모두 esbuild 계열)만 돌려 타입 에러를 잡지 못하는 공백이 있었다. - src/lib/schemaUtils.ts: Effect.void(= Effect<void, never>)를 Effect<Date | undefined, InvalidDateError> 자리에 사용하던 것을 Effect.succeed<Date | undefined>(undefined)로 교정. - test/lib/bms-test-utils.ts: BmsChatBubbleType을 내부용 type-only import만 존재하는 kakaoOption.ts가 아니라 정식 re-export 위치인 @/models/base/kakao/bms 에서 import. - test/models/base/kakao/bms/bmsConstraints.test.ts: 콜백이 2-arg인데 it.each 튜플에 사용되지 않는 3번째 원소(`true`)가 섞여 있어 제거. - test/models/requests/messages/sendMessage.test.ts: Schema.encodeSync 결과의 scheduledDate 타입이 string | Date이므로 new Date(...) 정규화 후 getTime 비교. 추가로 회귀 방지를 위해 package.json에 `typecheck` 스크립트 (tsc --noEmit)를 신설하고 CI lint 잡에 Typecheck step을 추가한다. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
release-please가 기본 GITHUB_TOKEN으로 GitHub Release를 생성할 때, GitHub Actions 정책상 `release: [published]` 이벤트가 다음 워크플로를 트리거하지 않는다. 이 제약으로 v6.0.0 이후 `build-docs.yaml`이 자동으로 돌지 않아 API Reference가 구버전으로 남아 있었다. `workflow_dispatch`는 GITHUB_TOKEN으로도 기동이 허용되므로, publish 잡 성공 후 `gh workflow run build-docs.yaml --ref $TAG`로 명시적 디스패치 하는 `trigger-docs` 잡을 추가한다. master 브랜치이고 release_created가 true일 때만 동작하므로 beta 경로나 release PR 생성 단계에서는 트리거 되지 않는다. `--ref $TAG`로 릴리즈 태그 기준 커밋에서 문서를 빌드해 릴리즈와 동일한 소스 상태가 보장된다. build-docs.yaml 자체는 그대로 유지 — 수동 재빌드 경로와 향후 PAT 전환 시의 release 이벤트 경로 모두 보존. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fix(build): resolve typedoc type errors and add tsc gate
ci(release): trigger docs build after stable publish
There was a problem hiding this comment.
Code Review
This pull request introduces several improvements and fixes across the codebase. Key changes include the addition of a typecheck script to package.json, a type-safety update in safeDateTransfer to return an explicit undefined effect, and refactoring of imports and test data in the BMS test utilities. Additionally, a date comparison in the message sending tests was corrected by explicitly constructing a Date object. I have no feedback to provide.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
v6.0.0 릴리즈 이후 GitHub Pages API Reference 문서 배포가 중단된 이슈를 두 개의 독립 원인으로 나눠 수정한다.
pnpm run docs(typedoc)가tsconfig의include: ["src/**/*", "test/**/*"]기준으로 전체 TS 컴파일을 수행하다 4개 타입 에러로 실패 — CI가 Biome/Vitest/tsup(esbuild 계열)만 돌려 타입 검증 공백이 있었음GITHUB_TOKEN으로 생성한 GitHub Release의release: [published]이벤트는 GitHub Actions 정책상 다음 워크플로를 트리거하지 않음 — v6.0.0 릴리즈 이후build-docs.yaml이 자동 실행되지 않은 근본 원인Changes
타입 에러 수정 (Phase A)
src/lib/schemaUtils.ts:48—Effect.void(Effect<void, never>) →Effect.succeed<Date | undefined>(undefined)test/lib/bms-test-utils.ts:8—BmsChatBubbleType를 정식 re-export 위치(@/models/base/kakao/bms)에서 importtest/models/base/kakao/bms/bmsConstraints.test.ts:29-44—it.each튜플의 미사용 3번째 원소(true) 제거로 콜백 시그니처와 일치화test/models/requests/messages/sendMessage.test.ts:600—Schema.encodeSync결과의scheduledDate가string | Date이므로new Date(...)정규화 후.getTime()호출회귀 방지 게이트 (Phase B)
package.json에"typecheck": "tsc --noEmit"스크립트 신설.github/workflows/ci.yml의lint잡에Typecheckstep 추가릴리즈 → 문서 빌드 체인 복구 (Phase C)
.github/workflows/release.yml에trigger-docs잡 추가needs: [release-please, publish]release_created == 'true'+publish.result == 'success'+github.ref_name == 'master'permissions: actions: write(최소 권한)gh workflow run build-docs.yaml --repo "$REPO" --ref "$TAG"—workflow_dispatch는GITHUB_TOKEN으로도 기동 가능하므로 명시적 디스패치 경로로 정책 제약 우회build-docs.yaml의 기존
release: [published]트리거와workflow_dispatch는 그대로 유지해 수동 재빌드 경로 및 향후 PAT 전환 여지를 보존.Test plan
로컬 검증 (모두 green):
pnpm typecheck— 0 errorspnpm test:ci— 374/374 passedpnpm run docs— exit 0,docs/index.html생성 (warning only)pnpm build— lint + tsup 성공CI/CD 검증 (이 PR 자체):
CI의 신설Typecheckstep 통과CI의test-matrix(Node 18/20/22) +build통과GitHub Actions Security통과배포 후 검증 (머지 이후 수동):
master에 머지된 뒤:Release워크플로의trigger-docs잡이build-docs를 자동 디스패치하는지 확인Related PRs (merged into fork master)
🤖 Generated with Claude Code