@@ -25,29 +25,40 @@ jobs:
2525 uses : actions/setup-node@v4
2626 with :
2727 node-version : 20
28- cache : ' npm'
29- cache-dependency-path : |
30- package-lock.json
31- site/package-lock.json
3228
33- - name : Install dependencies
29+ - name : Setup pnpm
30+ uses : pnpm/action-setup@v4
31+ with :
32+ version : latest
33+
34+ - name : Get pnpm store directory
35+ shell : bash
3436 run : |
35- # Install root and site npm dependencies
36- npm ci
37- cd site && npm ci && cd ..
37+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
38+
39+ - name : Setup pnpm cache
40+ uses : actions/cache@v4
41+ with :
42+ path : ${{ env.STORE_PATH }}
43+ key : ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
44+ restore-keys : |
45+ ${{ runner.os }}-pnpm-store-
3846
39- # Make sure bundler is using the correct Ruby version
40- ruby -v
47+ - name : Install npm packages
48+ run : |
49+ # Install root and site pnpm dependencies
50+ pnpm install --frozen-lockfile
51+ cd site && pnpm install --frozen-lockfile && cd ..
4152
4253 - name : Generate CSpell dictionaries from package lockfiles
4354 run : |
44- bin /generate_lockfile_words
55+ scripts /generate_lockfile_words.sh
4556
4657 - name : CSpell (Spellcheck)
47- run : bin /spellcheck
58+ run : scripts /spellcheck.sh
4859
4960 - name : Prettier (Formatting)
50- run : bin /prettier --check
61+ run : scripts /prettier.sh --check
5162
5263 - name : Tapioca (Verify RBI files)
5364 run : |
@@ -74,10 +85,10 @@ jobs:
7485 fi
7586
7687 - name : RuboCop (Linting/Formatting)
77- run : bin /rubocop
88+ run : scripts /rubocop.rb
7889
7990 - name : Sorbet (Typecheck)
80- run : bin /typecheck
91+ run : scripts /typecheck.sh
8192
8293 site :
8394 name : ' Next.js Site Tests'
@@ -95,23 +106,39 @@ jobs:
95106 uses : actions/setup-node@v4
96107 with :
97108 node-version : 20
98- cache : ' npm'
99- cache-dependency-path : ' site/package-lock.json'
109+
110+ - name : Setup pnpm
111+ uses : pnpm/action-setup@v4
112+ with :
113+ version : latest
114+
115+ - name : Get pnpm store directory
116+ shell : bash
117+ run : |
118+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
119+
120+ - name : Setup pnpm cache
121+ uses : actions/cache@v4
122+ with :
123+ path : ${{ env.STORE_PATH }}
124+ key : ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
125+ restore-keys : |
126+ ${{ runner.os }}-pnpm-store-
100127
101128 - name : Install site dependencies
102- run : cd site && npm ci
129+ run : cd site && pnpm install --frozen-lockfile
103130
104131 - name : Export TypeScript types from LogStruct
105132 run : |
106133 scripts/export_typescript_types.rb
107134
108135 - name : TypeScript type checking
109136 run : |
110- cd site && npx tsc --noEmit
137+ cd site && pnpm exec tsc --noEmit
111138
112139 - name : Run TypeScript tests
113140 run : |
114- cd site && npm test
141+ cd site && pnpm test
115142
116143 pilot :
117144 name : ' Pilot Test: Ruby 3.4 / Rails 8.0'
@@ -136,15 +163,15 @@ jobs:
136163
137164 # Coverage: /coverage
138165 - name : Run tests
139- run : bin /test
166+ run : scripts /test.rb
140167
141168 # Coverage: /coverage_rails
142169 - name : Run Rails integration tests
143- run : bin /rails_tests
170+ run : scripts /rails_tests.sh
144171
145172 # Merges /coverage and /coverage_rails into /site/public/coverage/
146173 - name : Merge coverage reports
147- run : bin /merge_coverage
174+ run : scripts /merge_coverage.sh
148175
149176 # Save merged coverage data as an artifact for deploy workflow
150177 - name : Upload coverage reports
@@ -196,7 +223,7 @@ jobs:
196223 bundler-cache : true
197224
198225 - name : Run Ruby tests
199- run : bin /test
226+ run : scripts /test.rb
200227
201228 - name : Run Rails integration tests
202- run : bin /rails_tests
229+ run : scripts /rails_tests.sh
0 commit comments