66 pull_request :
77 branches : [main, develop]
88
9+ concurrency :
10+ group : ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
11+ cancel-in-progress : true
12+
913jobs :
1014 test :
1115 name : Test
1216 runs-on : ubuntu-latest
13- strategy :
14- matrix :
15- node-version : [20.x]
1617
1718 steps :
1819 - name : Checkout code
@@ -21,24 +22,19 @@ jobs:
2122 - name : Setup pnpm
2223 uses : pnpm/action-setup@v4
2324
24- - name : Setup Node.js ${{ matrix.node-version }}
25+ - name : Setup Node.js
2526 uses : actions/setup-node@v6
2627 with :
27- node-version : ${{ matrix.node-version }}
28+ node-version : ' 20.x '
2829 cache : ' pnpm'
2930
3031 - name : Install dependencies
3132 run : pnpm install --frozen-lockfile
3233
33- - name : Run tests
34- run : pnpm test
35-
36- - name : Generate coverage report
37- if : matrix.node-version == '20.x'
34+ - name : Run tests with coverage
3835 run : pnpm test:coverage
3936
4037 - name : Upload coverage to Codecov
41- if : matrix.node-version == '20.x'
4238 uses : codecov/codecov-action@v5
4339 with :
4440 fail_ci_if_error : false
@@ -134,8 +130,8 @@ jobs:
134130 node-version : ' 20.x'
135131 cache : ' pnpm'
136132
137- - name : Turbo Cache
138- uses : actions/cache@v5
133+ - name : Restore Turbo Cache
134+ uses : actions/cache/restore @v5
139135 with :
140136 path : node_modules/.cache/turbo
141137 key : turbo-${{ runner.os }}-${{ github.sha }}
@@ -165,8 +161,12 @@ jobs:
165161 docs :
166162 name : Build Docs
167163 runs-on : ubuntu-latest
168- # Optional: Only run if related files change (requires strict path filtering logic or reliance on turbo cache)
169- # For now, we run it but as a separate parallel job so it doesn't block 'Build Core'
164+ if : >-
165+ github.event_name == 'push' ||
166+ (
167+ github.event_name == 'pull_request' &&
168+ !contains(github.event.pull_request.title, '[skip docs]')
169+ )
170170
171171 steps :
172172 - name : Checkout code
0 commit comments