์ปจํ
์คํธ ๋ธ๋ก
Key
Value
Category
infrastructure
Checklist
ISS-INFRA-07 โ No CI workflow to lint/typecheck/test on push or PR
Priority
P1 ๐
Scan Date
2026-04-16
Flagged By
@infra-explorer
์์ฝ
WHAT : .github/workflows/ci.yml์ format ์ฒดํฌ, lint, spell ์ฒดํฌ๋ง ์กด์ฌ โ TypeScript ํ์
์ฒดํฌ(tsc --noEmit)์ test ์คํ(pnpm test) job ๋๋ฝ
WHY : ํ์
์๋ฌ์ ํ
์คํธ ์คํจ๊ฐ PR ๋จธ์ง๊น์ง ๊ฒ์ถ๋์ง ์์. ๊ธฐ์กด ์ด์ ๐ [P1] fix(config): noImplicitAny:false overrides strict:true in tsconfigย #60 (noImplicitAny:false)์ด ์์ง ์ด๋ฆฐ ์ํ์์ ํ์
์ด์๊ฐ CI๋ก ์ฐจ๋จ๋์ง๋ ์์
WHERE : .github/workflows/ci.yml
SEVERITY : HIGH โ ํ์ง ๊ฒ์ดํธ ๋ถ์ฌ, PR ๋ฆฌ๋ทฐ์ด์ ์ ์ ์ผ๋ก ์์กด
Evidence
#
File
Line
Finding
Flagged By
Confidence
1
.github/workflows/ci.yml
1-75
jobs ํค ์๋ format, lint, readme-spelling, check-spelling๋ง ์ ์ โ typecheck, test ์์
@infra-explorer
High
2
frontend/package.json
โ
pnpm test ์คํฌ๋ฆฝํธ ์กด์ฌ ์ฌ๋ถ ํ์ธ ํ์ (vitest ์ค์ ๊ฐ์ )
@infra-explorer
Medium
3
frontend/tsconfig.json
โ
TypeScript ์ค์ ์ ์กด์ฌ, ๊ธฐ์กด ์ด์ #60์ผ๋ก noImplicitAny ๋ฌธ์ ์์ โ CI ๊ฒ์ฆ ์์ด๋ ๋์
@infra-explorer
High
์ํฅ ๋ถ์
์ํฅ ๋ฒ์
๋ชจ๋ PR ๋ณํฉ ํ์ง
๋ฆด๋ฆฌ์ค ์์ ์์ผ ํ์
์๋ฌ ๋ฐ๊ฒฌ (๋ก์ปฌ์์ ์คํํ์ง ์์ ๊ฒฝ์ฐ)
ํ
์คํธ ์ฝ๋๊ฐ ์์ฑ๋์ด๋ ์คํ๋์ง ์๋ dead test ๋ฐ์ ์ํ
์ฅ์ ์๋๋ฆฌ์ค
๊ธฐ์ฌ์๊ฐ TypeScript ํ์
์๋ฌ๊ฐ ์๋ ์ฝ๋๋ฅผ PR๋ก ์ ์ถ
CI๋ format/lint/spell๋ง ํต๊ณผ โ green check
๋ฆฌ๋ทฐ์ด๊ฐ tsc ๋ก์ปฌ ์คํ์ ์์
๋จธ์ง ํ ํ๋ก๋์
๋น๋์์ tsc ์คํจ (Next.js build๊ฐ tsc๋ฅผ ํธ์ถ) โ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ ์ ์ฒด ์ ์ง
๊ธด๊ธ๋
๊ธฐ์กด ์ด์ #60๊ณผ ๋์ โ ํ์
์์ ์ฑ ์ ๋ฐ์ด CI๋ก ์ง์ผ์ง์ง ์์
์คํ์์ค ํ๋ก์ ํธ๋ก์ ์ธ๋ถ ๊ธฐ์ฌ ํ์ง ๋ณด์ฅ ํ์
์ ์ ํด๊ฒฐ ๋ฐฉ์
์ ๊ทผ ๋ฐฉ๋ฒ
.github/workflows/ci.yml์ ๋ job ์ถ๊ฐ:
typecheck :
name : TypeScript Type Check
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v4
- uses : pnpm/action-setup@v4
- uses : actions/setup-node@v4
with :
node-version : 20
cache : pnpm
cache-dependency-path : frontend/pnpm-lock.yaml
- run : pnpm install --frozen-lockfile
working-directory : frontend
- run : pnpm tsc --noEmit
working-directory : frontend
test :
name : Unit Tests
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v4
- uses : pnpm/action-setup@v4
- uses : actions/setup-node@v4
with :
node-version : 20
cache : pnpm
cache-dependency-path : frontend/pnpm-lock.yaml
- run : pnpm install --frozen-lockfile
working-directory : frontend
- run : pnpm test
working-directory : frontend
ํ
์คํธ๊ฐ ์์ง ์๋ค๋ฉด ์ต์ vitest ํ๊ฒฝ ๊ตฌ์ถ๊ณผ ์ค๋ชจํฌ ํ
์คํธ๋ถํฐ.
๋ธ๋์น ๋ณดํธ ๊ท์น์์ typecheck์ test๋ฅผ required status check๋ก ์ค์ .
๋์
build job๋ง ์ถ๊ฐ : pnpm build๊ฐ tsc๋ฅผ ํธ์ถํ์ง๋ง ๋๋ฆฌ๊ณ ๋น์ฉ์ด ๋ ํผ โ tsc --noEmit์ด ๋ ๊ฒฝ์ ์
turborepo remote cache : CI ์๊ฐ ๋จ์ถ โ ๋ณ๋ ์ค์ฝํ
์์ฉ ๊ธฐ์ค
์ฐธ์กฐ
์ฌํ ๋ฐฉ๋ฒ
์ฌ์ ์กฐ๊ฑด
์ ์ฅ์์ PR ์์ฑ ๊ถํ
๋จ๊ณ
๋ธ๋์น ์์ฑ ํ ํ์
์๋ฌ ์๋์ ์ฝ์
(์: const x: number = \"string\";)
PR ์์ฑ
CI ์ํ ํ์ธ
๊ธฐ๋ ๊ฒฐ๊ณผ
CI ์คํจ (typecheck job)
์ค์ ๊ฒฐ๊ณผ
CI ์ฑ๊ณต โ ํ์
์๋ฌ ๊ฒ์ถ ๋ชปํจ
๊ด๋ จ ์ฝ๋ ์ปจํ
์คํธ
File
Role
Relevance
.github/workflows/ci.yml
CI ํ์ดํ๋ผ์ธ
์์ ๋์
frontend/package.json
์คํฌ๋ฆฝํธ ์ํธ๋ฆฌ
test ์คํฌ๋ฆฝํธ ํ์ธ/์ถ๊ฐ
frontend/tsconfig.json
TypeScript ์ค์
๊ธฐ์กด ์ด์ #60๊ณผ ์ฐ๊ณ
Detected by oh-my-braincrew `omb:issue` scan
Category: infrastructure | Scan date: 2026-04-16
`omb-issue-scan category=infrastructure checklist=ISS-INFRA-07`
์ปจํ ์คํธ ๋ธ๋ก
ISS-INFRA-07โ No CI workflow to lint/typecheck/test on push or PR์์ฝ
.github/workflows/ci.yml์ format ์ฒดํฌ, lint, spell ์ฒดํฌ๋ง ์กด์ฌ โ TypeScript ํ์ ์ฒดํฌ(tsc --noEmit)์ test ์คํ(pnpm test) job ๋๋ฝ.github/workflows/ci.ymlEvidence
.github/workflows/ci.ymlformat,lint,readme-spelling,check-spelling๋ง ์ ์ โtypecheck,test์์frontend/package.jsonpnpm test์คํฌ๋ฆฝํธ ์กด์ฌ ์ฌ๋ถ ํ์ธ ํ์ (vitest ์ค์ ๊ฐ์ )frontend/tsconfig.json์ํฅ ๋ถ์
์ํฅ ๋ฒ์
์ฅ์ ์๋๋ฆฌ์ค
tsc๋ก์ปฌ ์คํ์ ์์tsc์คํจ (Next.js build๊ฐ tsc๋ฅผ ํธ์ถ) โ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ ์ ์ฒด ์ ์ง๊ธด๊ธ๋
์ ์ ํด๊ฒฐ ๋ฐฉ์
์ ๊ทผ ๋ฐฉ๋ฒ
.github/workflows/ci.yml์ ๋ job ์ถ๊ฐ:ํ ์คํธ๊ฐ ์์ง ์๋ค๋ฉด ์ต์ vitest ํ๊ฒฝ ๊ตฌ์ถ๊ณผ ์ค๋ชจํฌ ํ ์คํธ๋ถํฐ.
๋ธ๋์น ๋ณดํธ ๊ท์น์์
typecheck์test๋ฅผ required status check๋ก ์ค์ .๋์
pnpm build๊ฐ tsc๋ฅผ ํธ์ถํ์ง๋ง ๋๋ฆฌ๊ณ ๋น์ฉ์ด ๋ ํผ โtsc --noEmit์ด ๋ ๊ฒฝ์ ์ ์์ฉ ๊ธฐ์ค
.github/workflows/ci.yml์typecheckjob ์ถ๊ฐ,pnpm tsc --noEmit์คํtestjob ์ถ๊ฐ, ํ ์คํธ๊ฐ ์๋ค๋ฉด ์ต์ 1๊ฐ์ ์ค๋ชจํฌ ํ ์คํธ ์ ๊ณต์ฐธ์กฐ
.github/workflows/ci.yml,frontend/package.json,frontend/tsconfig.json์ฌํ ๋ฐฉ๋ฒ
์ฌ์ ์กฐ๊ฑด
๋จ๊ณ
const x: number = \"string\";)๊ธฐ๋ ๊ฒฐ๊ณผ
CI ์คํจ (typecheck job)
์ค์ ๊ฒฐ๊ณผ
CI ์ฑ๊ณต โ ํ์ ์๋ฌ ๊ฒ์ถ ๋ชปํจ
๊ด๋ จ ์ฝ๋ ์ปจํ ์คํธ
.github/workflows/ci.ymlfrontend/package.jsontest์คํฌ๋ฆฝํธ ํ์ธ/์ถ๊ฐfrontend/tsconfig.json