66 branches : [main]
77 types : [opened, reopened, synchronize, ready_for_review]
88
9- # 빠른 피드백: 기능/ 작업 브랜치에 push될 때 CI 실행
9+ # 빠른 피드백: 작업 브랜치에 push될 때 CI 실행 (⚠️ 대문자 네이밍만 허용)
1010 push :
1111 branches :
12- - " Feature/*"
13- - " Fix/*"
14- - " Chore/*"
15- - " Docs/*"
16- - " Test/*"
17- - " Refactor/*"
12+ - " Feature/** "
13+ - " Fix/** "
14+ - " Chore/** "
15+ - " Docs/** "
16+ - " Test/** "
17+ - " Refactor/** "
1818
1919 # (선택) Actions 탭에서 수동 실행 버튼
2020 workflow_dispatch : {}
@@ -23,34 +23,51 @@ concurrency:
2323 group : ${{ github.workflow }}-${{ github.ref }}
2424 cancel-in-progress : true
2525
26+ permissions :
27+ contents : read
28+
2629env :
2730 NODE_VERSION : " 20.19.2"
31+ CI : " true"
2832
2933jobs :
3034 lint :
35+ name : Style & Lint
3136 runs-on : ubuntu-latest
37+ timeout-minutes : 10
3238 steps :
3339 - uses : actions/checkout@v4
40+
3441 - uses : actions/setup-node@v4
3542 with :
3643 node-version : ${{ env.NODE_VERSION }}
44+
3745 - uses : pnpm/action-setup@v4
3846 with :
3947 run_install : false
48+
4049 - name : Get pnpm store directory
4150 id : pnpm-cache
4251 run : echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
52+
4353 - uses : actions/cache@v4
4454 with :
4555 path : ${{ steps.pnpm-cache.outputs.STORE_PATH }}
4656 key : ${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
4757 restore-keys : ${{ runner.os }}-pnpm-
58+
4859 - run : pnpm install --frozen-lockfile
49- - run : pnpm run --if-present lint
60+
61+ - name : Prettier check
62+ run : pnpm run --if-present format:check
63+
64+ - name : ESLint
65+ run : pnpm run --if-present lint
5066
5167 test :
5268 runs-on : ubuntu-latest
5369 needs : lint
70+ timeout-minutes : 15
5471 steps :
5572 - uses : actions/checkout@v4
5673 - uses : actions/setup-node@v4
7390 build :
7491 runs-on : ubuntu-latest
7592 needs : test
93+ timeout-minutes : 15
7694 steps :
7795 - uses : actions/checkout@v4
7896 - uses : actions/setup-node@v4
@@ -90,4 +108,13 @@ jobs:
90108 key : ${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
91109 restore-keys : ${{ runner.os }}-pnpm-
92110 - run : pnpm install --frozen-lockfile
111+
112+ # (선택) Next.js 빌드 캐시
113+ # - uses: actions/cache@v4
114+ # with:
115+ # path: |
116+ # .next/cache
117+ # key: ${{ runner.os }}-next-${{ hashFiles('pnpm-lock.yaml', 'next.config.*', '**/*.{ts,tsx,js,jsx,css,scss,md,mdx}') }}
118+ # restore-keys: ${{ runner.os }}-next-
119+
93120 - run : pnpm run build
0 commit comments