@@ -28,27 +28,28 @@ jobs:
2828 fail-fast : false
2929 matrix :
3030 # PRs: test on latest Node only. Push to develop: full matrix.
31- node : ${{ github.event_name == 'pull_request' && fromJSON('[">=24.0.0 <25.0.0" ]') || fromJSON('[">=20.0.0 <21.0.0", ">=22.0.0 <23.0.0", ">=24.0.0 <25.0.0" ]') }}
31+ node : ${{ github.event_name == 'pull_request' && fromJSON('[24 ]') || fromJSON('[20, 22, 24 ]') }}
3232 steps :
3333 -
3434 name : Checkout repository
3535 uses : actions/checkout@v6
3636 - uses : actions/cache@v5
37- name : Setup gnpm cache
38- if : always()
37+ name : Cache pnpm store
3938 with :
40- path : |
41- ${{ env.PNPM_HOME }}
42- ~/.local/share/gnpm
43- /usr/local/bin/gnpm
44- /usr/local/bin/gnpm-0.0.12
45- key : ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
39+ path : ${{ env.PNPM_HOME }}
40+ key : ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
4641 restore-keys : |
47- ${{ runner.os }}-gnpm -store-
48- - name : Setup gnpm
49- uses : SamTV12345/gnpm-setup@main
42+ ${{ runner.os }}-pnpm -store-
43+ - uses : pnpm/action-setup@v6
44+ name : Install pnpm
5045 with :
51- version : 0.0.12
46+ version : 10.33.2
47+ run_install : false
48+ - name : Use Node.js
49+ uses : actions/setup-node@v6
50+ with :
51+ node-version : ${{ matrix.node }}
52+ cache : pnpm
5253 -
5354 name : Install libreoffice
5455 uses : awalsh128/cache-apt-pkgs-action@v1.6.0
@@ -57,19 +58,19 @@ jobs:
5758 version : 1.0
5859 -
5960 name : Install all dependencies and symlink for ep_etherpad-lite
60- run : gnpm i --frozen-lockfile --runtimeVersion="${{ matrix.node }}"
61+ run : pnpm i --frozen-lockfile
6162 - name : Install admin ui
6263 working-directory : admin
63- run : gnpm install --runtimeVersion="${{ matrix.node }}"
64+ run : pnpm install
6465 - name : Build admin ui
6566 working-directory : admin
66- run : gnpm build --runtimeVersion="${{ matrix.node }}"
67+ run : pnpm build
6768 -
6869 name : Run the backend tests
69- run : gnpm test --runtimeVersion="${{ matrix.node }}"
70+ run : pnpm test
7071 - name : Run the new vitest tests
7172 working-directory : src
72- run : gnpm run test:vitest --runtimeVersion="${{ matrix.node }}"
73+ run : pnpm run test:vitest
7374
7475 withpluginsLinux :
7576 env :
@@ -84,27 +85,28 @@ jobs:
8485 strategy :
8586 fail-fast : false
8687 matrix :
87- node : ${{ github.event_name == 'pull_request' && fromJSON('[">=24.0.0 <25.0.0" ]') || fromJSON('[">=20.0.0 <21.0.0", ">=22.0.0 <23.0.0", ">=24.0.0 <25.0.0" ]') }}
88+ node : ${{ github.event_name == 'pull_request' && fromJSON('[24 ]') || fromJSON('[20, 22, 24 ]') }}
8889 steps :
8990 -
9091 name : Checkout repository
9192 uses : actions/checkout@v6
9293 - uses : actions/cache@v5
93- name : Setup pnpm cache
94- if : always()
94+ name : Cache pnpm store
9595 with :
96- path : |
97- ${{ env.PNPM_HOME }}
98- ~/.local/share/gnpm
99- /usr/local/bin/gnpm
100- /usr/local/bin/gnpm-0.0.12
101- key : ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
96+ path : ${{ env.PNPM_HOME }}
97+ key : ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
10298 restore-keys : |
103- ${{ runner.os }}-gnpm-store-
104- - name : Setup gnpm
105- uses : SamTV12345/gnpm-setup@main
99+ ${{ runner.os }}-pnpm-store-
100+ - uses : pnpm/action-setup@v6
101+ name : Install pnpm
102+ with :
103+ version : 10.33.2
104+ run_install : false
105+ - name : Use Node.js
106+ uses : actions/setup-node@v6
106107 with :
107- version : 0.0.12
108+ node-version : ${{ matrix.node }}
109+ cache : pnpm
108110 -
109111 name : Install libreoffice
110112 uses : awalsh128/cache-apt-pkgs-action@v1.6.0
@@ -113,14 +115,14 @@ jobs:
113115 version : 1.0
114116 -
115117 name : Install all dependencies and symlink for ep_etherpad-lite
116- run : gnpm install --frozen-lockfile --runtimeVersion="${{ matrix.node }}"
118+ run : pnpm install --frozen-lockfile
117119 - name : Build admin ui
118120 working-directory : admin
119- run : gnpm build --runtimeVersion="${{ matrix.node }}"
121+ run : pnpm build
120122 -
121123 name : Install Etherpad plugins
122124 run : >
123- gnpm install --workspace-root
125+ pnpm add -w
124126 ep_align
125127 ep_author_hover
126128 ep_cursortrace
@@ -134,10 +136,10 @@ jobs:
134136 ep_table_of_contents
135137 -
136138 name : Run the backend tests
137- run : gnpm test --runtimeVersion="${{ matrix.node }}"
139+ run : pnpm test
138140 - name : Run the new vitest tests
139141 working-directory : src
140- run : gnpm run test:vitest --runtimeVersion="${{ matrix.node }}"
142+ run : pnpm run test:vitest
141143
142144 # Windows tests only run on push to develop/master, not on PRs
143145 withoutpluginsWindows :
@@ -148,34 +150,36 @@ jobs:
148150 strategy :
149151 fail-fast : false
150152 matrix :
151- node : [">=20.0.0 <21.0.0", ">=22.0.0 <23.0.0", ">=24.0.0 <25.0.0" ]
153+ node : [20, 22, 24 ]
152154 name : Windows without plugins
153155 runs-on : windows-latest
154156 steps :
155157 -
156158 name : Checkout repository
157159 uses : actions/checkout@v6
158160 - uses : actions/cache@v5
159- name : Setup pnpm cache
160- if : always()
161+ name : Cache pnpm store
161162 with :
162- path : |
163- ${{ env.PNPM_HOME }}
164- C:\gnpm\
165- C:\Users\runneradmin\AppData\Roaming\gnpm\
166- key : ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
163+ path : ${{ env.PNPM_HOME }}
164+ key : ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
167165 restore-keys : |
168- ${{ runner.os }}-gnpm -store-
169- - name : Setup gnpm
170- uses : SamTV12345/gnpm-setup@main
166+ ${{ runner.os }}-pnpm -store-
167+ - uses : pnpm/action-setup@v6
168+ name : Install pnpm
171169 with :
172- version : 0.0.12
170+ version : 10.33.2
171+ run_install : false
172+ - name : Use Node.js
173+ uses : actions/setup-node@v6
174+ with :
175+ node-version : ${{ matrix.node }}
176+ cache : pnpm
173177 -
174178 name : Install all dependencies and symlink for ep_etherpad-lite
175- run : gnpm install --frozen-lockfile --runtimeVersion="${{ matrix.node }}"
179+ run : pnpm install --frozen-lockfile
176180 - name : Build admin ui
177181 working-directory : admin
178- run : gnpm build --runtimeVersion="${{ matrix.node }}"
182+ run : pnpm build
179183 -
180184 name : Fix up the settings.json
181185 run : |
@@ -184,10 +188,10 @@ jobs:
184188 -
185189 name : Run the backend tests
186190 working-directory : src
187- run : gnpm test --runtimeVersion="${{ matrix.node }}"
191+ run : pnpm test
188192 - name : Run the new vitest tests
189193 working-directory : src
190- run : gnpm run test:vitest --runtimeVersion="${{ matrix.node }}"
194+ run : pnpm run test:vitest
191195
192196 withpluginsWindows :
193197 env :
@@ -197,7 +201,7 @@ jobs:
197201 strategy :
198202 fail-fast : false
199203 matrix :
200- node : [">=20.0.0 <21.0.0", ">=22.0.0 <23.0.0", ">=24.0.0 <25.0.0" ]
204+ node : [20, 22, 24 ]
201205 name : Windows with Plugins
202206 runs-on : windows-latest
203207
@@ -206,29 +210,31 @@ jobs:
206210 name : Checkout repository
207211 uses : actions/checkout@v6
208212 - uses : actions/cache@v5
209- name : Setup pnpm cache
210- if : always()
213+ name : Cache pnpm store
211214 with :
212- path : |
213- ${{ env.PNPM_HOME }}
214- C:\gnpm\
215- C:\Users\runneradmin\AppData\Roaming\gnpm\
216- key : ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
215+ path : ${{ env.PNPM_HOME }}
216+ key : ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
217217 restore-keys : |
218- ${{ runner.os }}-gnpm-store-
219- - name : Setup gnpm
220- uses : SamTV12345/gnpm-setup@main
218+ ${{ runner.os }}-pnpm-store-
219+ - uses : pnpm/action-setup@v6
220+ name : Install pnpm
221+ with :
222+ version : 10.33.2
223+ run_install : false
224+ - name : Use Node.js
225+ uses : actions/setup-node@v6
221226 with :
222- version : 0.0.12
227+ node-version : ${{ matrix.node }}
228+ cache : pnpm
223229 - name : Install dependencies
224- run : gnpm install --runtimeVersion="${{ matrix.node }}"
230+ run : pnpm install
225231 - name : Build admin ui
226232 working-directory : admin
227- run : gnpm build --runtimeVersion="${{ matrix.node }}"
233+ run : pnpm build
228234 -
229235 name : Install Etherpad plugins
230236 run : >
231- gnpm install --workspace-root
237+ pnpm add -w
232238 ep_align
233239 ep_author_hover
234240 ep_cursortrace
@@ -251,7 +257,7 @@ jobs:
251257 # rules.
252258 -
253259 name : Install all dependencies and symlink for ep_etherpad-lite
254- run : gnpm install --frozen-lockfile --runtimeVersion="${{ matrix.node }}"
260+ run : pnpm install --frozen-lockfile
255261 -
256262 name : Fix up the settings.json
257263 run : |
@@ -260,7 +266,7 @@ jobs:
260266 -
261267 name : Run the backend tests
262268 working-directory : src
263- run : gnpm test --runtimeVersion="${{ matrix.node }}"
269+ run : pnpm test
264270 - name : Run the new vitest tests
265271 working-directory : src
266- run : gnpm run test:vitest --runtimeVersion="${{ matrix.node }}"
272+ run : pnpm run test:vitest
0 commit comments