Skip to content

Commit 56ba882

Browse files
authored
chore: migrate npm to pnpm (#633)
* migrate yarn 1 to pnpm * revert build step * update the workflow * update workflow
1 parent aa8247f commit 56ba882

File tree

5 files changed

+14144
-11
lines changed

5 files changed

+14144
-11
lines changed

.github/workflows/js-test-and-release.yml

Lines changed: 260 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,264 @@ concurrency:
1717
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event_name == 'push' && github.sha || github.ref }}
1818
cancel-in-progress: true
1919

20+
defaults:
21+
run:
22+
shell: bash
23+
2024
jobs:
21-
js-test-and-release:
22-
uses: ipdxco/unified-github-workflows/.github/workflows/js-test-and-release.yml@v1.0
23-
secrets:
24-
DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN }}
25-
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
26-
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
27-
UCI_GITHUB_TOKEN: ${{ secrets.UCI_GITHUB_TOKEN }}
28-
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
25+
26+
build:
27+
runs-on: ubuntu-latest
28+
steps:
29+
- uses: actions/checkout@v5
30+
- uses: pnpm/action-setup@v4
31+
- uses: actions/setup-node@v4
32+
with:
33+
node-version: lts/*
34+
- uses: ipfs/aegir/actions/cache-node-modules@main
35+
36+
check:
37+
needs: build
38+
runs-on: ubuntu-latest
39+
steps:
40+
- uses: actions/checkout@v5
41+
- uses: pnpm/action-setup@v4
42+
- uses: actions/setup-node@v4
43+
with:
44+
node-version: lts/*
45+
- uses: ipfs/aegir/actions/cache-node-modules@main
46+
- run: pnpm run --if-present lint
47+
- run: pnpm run --if-present dep-check
48+
- run: pnpm run --if-present doc-check
49+
- run: pnpm run --if-present spell-check
50+
51+
test-node:
52+
needs: build
53+
runs-on: ${{ matrix.os }}
54+
strategy:
55+
matrix:
56+
os: [windows-latest, ubuntu-latest, macos-latest]
57+
node: [lts/*]
58+
fail-fast: true
59+
steps:
60+
- uses: actions/checkout@v5
61+
- uses: pnpm/action-setup@v4
62+
- uses: actions/setup-node@v4
63+
with:
64+
node-version: ${{ matrix.node }}
65+
- uses: ipfs/aegir/actions/cache-node-modules@main
66+
- run: pnpm run --if-present test:node
67+
- uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
68+
with:
69+
flags: node
70+
files: .coverage/*,packages/*/.coverage/*
71+
token: ${{ secrets.CODECOV_TOKEN }}
72+
fail_ci_if_error: false
73+
disable_safe_directory: ${{ runner.os == 'Windows' }} # NOTE: The workspace on Windows runners is on the C: drive and the codecov action is unable to lock the git directory on it
74+
75+
test-chrome:
76+
needs: build
77+
runs-on: ubuntu-latest
78+
steps:
79+
- uses: actions/checkout@v5
80+
- uses: pnpm/action-setup@v4
81+
- uses: actions/setup-node@v4
82+
with:
83+
node-version: lts/*
84+
- uses: ipfs/aegir/actions/cache-node-modules@main
85+
- run: pnpm run --if-present test:chrome
86+
- uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
87+
with:
88+
flags: chrome
89+
files: .coverage/*,packages/*/.coverage/*
90+
token: ${{ secrets.CODECOV_TOKEN }}
91+
fail_ci_if_error: false
92+
93+
test-chrome-webworker:
94+
needs: build
95+
runs-on: ubuntu-latest
96+
steps:
97+
- uses: actions/checkout@v5
98+
- uses: pnpm/action-setup@v4
99+
- uses: actions/setup-node@v4
100+
with:
101+
node-version: lts/*
102+
- uses: ipfs/aegir/actions/cache-node-modules@main
103+
- run: pnpm run --if-present test:chrome-webworker
104+
- uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
105+
with:
106+
flags: chrome-webworker
107+
files: .coverage/*,packages/*/.coverage/*
108+
token: ${{ secrets.CODECOV_TOKEN }}
109+
fail_ci_if_error: false
110+
111+
test-firefox:
112+
needs: build
113+
runs-on: ubuntu-latest
114+
steps:
115+
- uses: actions/checkout@v5
116+
- uses: pnpm/action-setup@v4
117+
- uses: actions/setup-node@v4
118+
with:
119+
node-version: lts/*
120+
- uses: ipfs/aegir/actions/cache-node-modules@main
121+
- run: pnpm run --if-present test:firefox
122+
- uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
123+
with:
124+
flags: firefox
125+
files: .coverage/*,packages/*/.coverage/*
126+
token: ${{ secrets.CODECOV_TOKEN }}
127+
fail_ci_if_error: false
128+
129+
test-firefox-webworker:
130+
needs: build
131+
runs-on: ubuntu-latest
132+
steps:
133+
- uses: actions/checkout@v5
134+
- uses: pnpm/action-setup@v4
135+
- uses: actions/setup-node@v4
136+
with:
137+
node-version: lts/*
138+
- uses: ipfs/aegir/actions/cache-node-modules@main
139+
- run: pnpm run --if-present test:firefox-webworker
140+
- uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
141+
with:
142+
flags: firefox-webworker
143+
files: .coverage/*,packages/*/.coverage/*
144+
token: ${{ secrets.CODECOV_TOKEN }}
145+
fail_ci_if_error: false
146+
147+
test-webkit:
148+
needs: build
149+
runs-on: ${{ matrix.os }}
150+
strategy:
151+
matrix:
152+
os: [ubuntu-latest, macos-latest]
153+
node: [lts/*]
154+
fail-fast: true
155+
steps:
156+
- uses: actions/checkout@v5
157+
- uses: pnpm/action-setup@v4
158+
- uses: actions/setup-node@v4
159+
with:
160+
node-version: lts/*
161+
- uses: ipfs/aegir/actions/cache-node-modules@main
162+
- run: npx playwright install-deps
163+
- run: pnpm run --if-present test:webkit
164+
- uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
165+
with:
166+
flags: webkit
167+
files: .coverage/*,packages/*/.coverage/*
168+
token: ${{ secrets.CODECOV_TOKEN }}
169+
fail_ci_if_error: false
170+
disable_safe_directory: ${{ runner.os == 'Windows' }} # NOTE: The workspace on Windows runners is on the C: drive and the codecov action is unable to lock the git directory on it
171+
172+
test-webkit-webworker:
173+
needs: build
174+
runs-on: ${{ matrix.os }}
175+
strategy:
176+
matrix:
177+
os: [ubuntu-latest, macos-latest]
178+
node: [lts/*]
179+
fail-fast: true
180+
steps:
181+
- uses: actions/checkout@v5
182+
- uses: pnpm/action-setup@v4
183+
- uses: actions/setup-node@v4
184+
with:
185+
node-version: lts/*
186+
- uses: ipfs/aegir/actions/cache-node-modules@main
187+
- run: npx playwright install-deps
188+
- run: pnpm run --if-present test:webkit-webworker
189+
- uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
190+
with:
191+
flags: webkit-webworker
192+
files: .coverage/*,packages/*/.coverage/*
193+
token: ${{ secrets.CODECOV_TOKEN }}
194+
fail_ci_if_error: false
195+
disable_safe_directory: ${{ runner.os == 'Windows' }} # NOTE: The workspace on Windows runners is on the C: drive and the codecov action is unable to lock the git directory on it
196+
197+
test-electron-main:
198+
needs: build
199+
runs-on: ubuntu-latest
200+
steps:
201+
- uses: actions/checkout@v5
202+
- uses: pnpm/action-setup@v4
203+
- uses: actions/setup-node@v4
204+
with:
205+
node-version: lts/*
206+
- uses: ipfs/aegir/actions/cache-node-modules@main
207+
- run: npx xvfb-maybe pnpm run --if-present test:electron-main
208+
- uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
209+
with:
210+
flags: electron-main
211+
files: .coverage/*,packages/*/.coverage/*
212+
token: ${{ secrets.CODECOV_TOKEN }}
213+
fail_ci_if_error: false
214+
215+
test-electron-renderer:
216+
needs: build
217+
runs-on: ubuntu-latest
218+
steps:
219+
- uses: actions/checkout@v5
220+
- uses: pnpm/action-setup@v4
221+
- uses: actions/setup-node@v4
222+
with:
223+
node-version: lts/*
224+
- uses: ipfs/aegir/actions/cache-node-modules@main
225+
- run: npx xvfb-maybe pnpm run --if-present test:electron-renderer
226+
- uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
227+
with:
228+
flags: electron-renderer
229+
files: .coverage/*,packages/*/.coverage/*
230+
token: ${{ secrets.CODECOV_TOKEN }}
231+
fail_ci_if_error: false
232+
233+
release-check:
234+
needs: [test-node, test-chrome, test-chrome-webworker, test-firefox, test-firefox-webworker, test-webkit, test-webkit-webworker, test-electron-main, test-electron-renderer]
235+
runs-on: ubuntu-latest
236+
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
237+
outputs:
238+
release: ${{ steps.branch.outputs.release }}
239+
steps:
240+
- id: branch
241+
name: Check if the branch is a release branch
242+
env:
243+
BRANCHES: ${{ inputs.branches }}
244+
REF: ${{ github.ref }}
245+
uses: actions/github-script@v7
246+
with:
247+
script: |
248+
const branches = JSON.parse(process.env.BRANCHES);
249+
const ref = process.env.REF.replace(/^refs\/heads\//, '');
250+
const release = branches.some(b => {
251+
const regexPattern = b.replace(/\*/g, '.*');
252+
const regex = new RegExp(`^${regexPattern}$`);
253+
return regex.test(ref);
254+
});
255+
console.log(`This is a release branch: ${release}`);
256+
core.setOutput('release', release);
257+
258+
release:
259+
needs: [release-check]
260+
runs-on: ubuntu-latest
261+
if: needs.release-check.outputs.release == 'true'
262+
steps:
263+
- uses: actions/checkout@v5
264+
with:
265+
fetch-depth: 0
266+
persist-credentials: false
267+
- uses: pnpm/action-setup@v4
268+
- uses: actions/setup-node@v4
269+
with:
270+
node-version: lts/*
271+
- uses: ipfs/aegir/actions/cache-node-modules@main
272+
- uses: ipfs/aegir/actions/docker-login@main
273+
with:
274+
docker-token: ${{ secrets.DOCKER_TOKEN }}
275+
docker-username: ${{ secrets.DOCKER_USERNAME }}
276+
docker-registry: ${{ inputs.docker-registry }}
277+
- run: pnpm run --if-present release
278+
env:
279+
GITHUB_TOKEN: ${{ secrets.UCI_GITHUB_TOKEN || github.token }}
280+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ This repository contains TypeScript implementation of noise protocol, an encrypt
3535

3636
## Usage
3737

38-
Install with `yarn add @chainsafe/libp2p-noise` or `npm i @chainsafe/libp2p-noise`.
38+
Install with `yarn add @chainsafe/libp2p-noise`, `npm i @chainsafe/libp2p-noise` or `pnpm add @chainsafe/libp2p-noise`.
3939

4040
Example of using default noise configuration and passing it to the libp2p config:
4141

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"bugs": {
1313
"url": "https://github.com/ChainSafe/js-libp2p-noise/issues"
1414
},
15+
"packageManager": "pnpm@10.24.0",
1516
"publishConfig": {
1617
"access": "public",
1718
"provenance": true
@@ -162,7 +163,7 @@
162163
"test:interop": "aegir test -t node -f dist/test/interop.js",
163164
"docs": "aegir docs",
164165
"proto:gen": "protons ./src/proto/payload.proto",
165-
"prepublish": "npm run build",
166+
"prepublish": "pnpm build",
166167
"release": "aegir release"
167168
},
168169
"dependencies": {

0 commit comments

Comments
 (0)