Repository navigation
CI에 Compose 게이트 추가, 중복 실행 정리, typescript-eslint를 TS6 지원 버전으로 - #3
Merged
Merged
Conversation
모든 브랜치 push 검증이 필요하면 이 커밋을 되돌린다
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.
PR #2 리뷰에서 머지를 막지 않아 후속으로 미뤘던 항목들을 처리했다.
1. CI에 Compose 게이트 추가
AGENTS.md의 Required validation에docker compose config --quiet가 있으나 CI의validatejob은pnpm build에서 끝나, 문서화된 불변식이 지속 검증되지 않았다..env없이 실행한다. 스캐폴드는 클론한 사람이.env를 만들기 전에도 compose 파일 자체가 유효해야하므로 "기본값만으로 성립한다"가 더 강한 불변식이고,
.env.example과의 정합성은 이미check:scaffold가 검사하는 영역이다.stderr가 비어 있지 않으면 실패로 승격한다. 측정해보니
docker compose config --quiet는 기본값없는 미정의 변수를 실패로 처리하지 않는다.
승격하지 않으면 이 게이트는 사실상 YAML 문법 검사에 그친다. 스캐폴드에서 실제로 위험한 실패는
compose 변수가 조용히 빈 문자열이 되는 것이다. 파생 프로젝트가
'${GRAFANA_HOST_PORT}:3000'처럼기본값을 빠뜨리면 CI는 통과하고 나중에
docker compose up이 알아보기 힘든 에러로 죽는다.경고 문구는 docker 버전에 따라 달라질 수 있어 문구 매칭이 아니라 stderr 비어있음으로 판정한다.
mutation 확인 —
LOKI_HOST_PORT:-3100에서 기본값을 제거:받아들이는 위험: 미래 docker 버전이 저장소와 무관한 경고를 내면 CI가 빨개진다. 그때 경고 원인을
없애거나 범위를 좁히면 된다. 현재 stderr는 비어 있어 이 정책의 비용은 0이다.
2. workflow 중복 실행 정리
브랜치 필터가 없어 PR 브랜치의 push가
push와pull_request두 run을 만들고 있었다. 이제 PR브랜치는
pull_request한 번,main은push한 번이다.되돌리기 쉽도록 별도 커밋(
50c5634)으로 분리했다. 모든 브랜치 push 검증이 필요하면 그 커밋만되돌리면 된다.
3. typescript-eslint 8.57.0 → 8.68.0
8.57.0의 peer는
>=4.8.4 <6.0.0이라 현재 TypeScript 6.0.3이 지원 범위 밖이었다. 8.68.0은<6.1.0으로 넓어져 지원한다. pnpm의 minimum release age 예외 없이 그대로 올라갔다.8.68.0이 불필요한 타입 단언 두 곳을 새로 탐지했다.
테스트 타입을 느슨하게 바꾸지 않고 불필요한
as never만 제거했다.검증
이번 범위에서 뺀 것
MikroORM/Prisma profile의 materialize + typecheck 검증은 별도 후속으로 남긴다. Drizzle은 PR #2에서
확인됐다. 이 PR의 변경과는 독립적이다.
🤖 Generated with Claude Code
https://claude.ai/code/session_01H9e5FGopAgR7Ah5VK6Wisb