Skip to content

Commit 8d08452

Browse files
Upgrade to node22 (#15069)
* Upgrade to node22 * Change files * set the right node version * Update yarn.lock and fix yarn errors * Fix lint issues * Update setup to use node22 * Update node to 22.14.0 * Update yarn.lock * non-interactive approach using npm config set commands to set authentication * Update creaternwapp.cmd * Fix command error * Fix errors * Revert "Fix errors" This reverts commit 0e71500. * Fix testservers issue * Fix flow error * Use spawnsync instead of execsync * spawnsync error fix * use flow-bin directly * fix Playground.readme lint * fix monorepo.md lint issue broken link * update snapshots --------- Co-authored-by: Abhijeet Jha <[email protected]>
1 parent f6e2d89 commit 8d08452

File tree

90 files changed

+406
-160
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+406
-160
lines changed

.ado/compliance.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ parameters:
66
default:
77
Medium:
88
name: rnw-pool-4-microsoft
9-
demands: ImageOverride -equals rnw-img-vs2022-node18
9+
demands: ImageOverride -equals rnw-img-vs2022-node22
1010
Large:
1111
name: rnw-pool-8-microsoft
12-
demands: ImageOverride -equals rnw-img-vs2022-node18
12+
demands: ImageOverride -equals rnw-img-vs2022-node22
1313
- name: forceCodeQL
1414
displayName: Force CodeQL to rebuild databases
1515
type: boolean

.ado/continuous.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ parameters:
1313
default:
1414
Small:
1515
name: rnw-pool-2
16-
demands: ImageOverride -equals rnw-img-vs2022-node18
16+
demands: ImageOverride -equals rnw-img-vs2022-node22
1717
Medium:
1818
name: rnw-pool-4
19-
demands: ImageOverride -equals rnw-img-vs2022-node18
19+
demands: ImageOverride -equals rnw-img-vs2022-node22
2020
Large:
2121
name: rnw-pool-8
22-
demands: ImageOverride -equals rnw-img-vs2022-node18
22+
demands: ImageOverride -equals rnw-img-vs2022-node22
2323

2424
stages:
2525
- template: stages.yml

.ado/jobs/node-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ parameters:
1212

1313
- name: versions
1414
type: object
15-
default: [18]
15+
default: [22]
1616

1717
jobs:
1818
- ${{ each nodeVersion in parameters.versions }}:

.ado/jobs/setup.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ jobs:
1414
pool: {vmImage: ubuntu-latest}
1515

1616
steps:
17+
- task: UseNode@1
18+
inputs:
19+
version: '22.14.0'
20+
displayName: 'Use Node.js 22.14.0'
21+
1722
- template: ../templates/checkout-full.yml
1823
parameters:
1924
persistCredentials: true # Git creds needed for beachball

.ado/publish.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ parameters:
2222
default:
2323
Medium:
2424
name: rnw-pool-4-microsoft
25-
demands: ImageOverride -equals rnw-img-vs2022-node18
25+
demands: ImageOverride -equals rnw-img-vs2022-node22
2626
Large:
2727
name: rnw-pool-8-microsoft
28-
demands: ImageOverride -equals rnw-img-vs2022-node18
28+
demands: ImageOverride -equals rnw-img-vs2022-node22
2929

3030
- name: desktopBuildMatrix
3131
type: object

.ado/scripts/npmAddUser.js

Lines changed: 53 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
// @ts-check
33

44
const child_process = require("child_process");
5+
const fs = require("fs");
6+
const path = require("path");
7+
const os = require("os");
58

69
const username = process.argv[2];
710
const password = process.argv[3];
@@ -23,18 +26,54 @@ if (!email) {
2326
process.exit(1);
2427
}
2528

26-
const child = child_process.exec(`npm adduser${registry? (' --registry ' + registry) :''}` );
27-
28-
child.stdout.on("data", d => {
29-
const data = d.toString();
30-
process.stdout.write(d + "\n");
31-
if (data.match(/username/i)) {
32-
child.stdin.write(username + "\n");
33-
} else if (data.match(/password/i)) {
34-
child.stdin.write(password + "\n");
35-
} else if (data.match(/email/i)) {
36-
child.stdin.write(email + "\n");
37-
} else if (data.match(/logged in as/i)) {
38-
child.stdin.end();
39-
}
29+
const registryUrl = registry || "http://localhost:4873";
30+
31+
// First set the registry
32+
console.log(`Setting npm registry to ${registryUrl}`);
33+
const setRegistry = child_process.spawnSync('npm', ['config', 'set', 'registry', registryUrl], {
34+
stdio: 'inherit',
35+
shell: true
4036
});
37+
38+
if (setRegistry.status !== 0) {
39+
console.error('Failed to set registry');
40+
process.exit(1);
41+
}
42+
43+
// Create auth token for verdaccio
44+
const authString = Buffer.from(`${username}:${password}`).toString('base64');
45+
const registryPath = registryUrl.replace(/^https?:/, '');
46+
47+
// Set auth in npm config
48+
console.log('Setting authentication...');
49+
const setAuth = child_process.spawnSync('npm', ['config', 'set', `${registryPath}/:_auth`, authString], {
50+
stdio: 'inherit',
51+
shell: true
52+
});
53+
54+
if (setAuth.status !== 0) {
55+
console.error('Failed to set auth');
56+
process.exit(1);
57+
}
58+
59+
// Set email
60+
const setEmail = child_process.spawnSync('npm', ['config', 'set', 'email', email], {
61+
stdio: 'inherit',
62+
shell: true
63+
});
64+
65+
// Verify authentication
66+
console.log('Verifying authentication...');
67+
const whoami = child_process.spawnSync('npm', ['whoami', '--registry', registryUrl], {
68+
encoding: 'utf8',
69+
shell: true
70+
});
71+
72+
if (whoami.status === 0 && whoami.stdout.trim()) {
73+
console.log(`Logged in as ${whoami.stdout.trim()} on ${registryUrl}`);
74+
process.exit(0);
75+
} else {
76+
console.error('Authentication verification failed');
77+
if (whoami.stderr) console.error('Error:', whoami.stderr);
78+
process.exit(1);
79+
}

.ado/templates/prepare-js-env.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ steps:
1111
- task: NodeTool@0
1212
displayName: Set Node Version
1313
inputs:
14-
versionSpec: '18.x'
14+
versionSpec: '22.x'
1515

1616
- script: if not exist %APPDATA%\npm (mkdir %APPDATA%\npm)
1717
displayName: Ensure npm directory for npx commands

.ado/windows-vs-pr-secure.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ parameters:
1616
default:
1717
Small:
1818
name: rnw-pool-2
19-
demands: ImageOverride -equals rnw-img-vs2022-node18
19+
demands: ImageOverride -equals rnw-img-vs2022-node22
2020
Medium:
2121
name: rnw-pool-4
22-
demands: ImageOverride -equals rnw-img-vs2022-node18
22+
demands: ImageOverride -equals rnw-img-vs2022-node22
2323
Large:
2424
name: rnw-pool-8
25-
demands: ImageOverride -equals rnw-img-vs2022-node18
25+
demands: ImageOverride -equals rnw-img-vs2022-node22
2626

2727
stages:
2828
- template: stages.yml

.ado/windows-vs-pr.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ parameters:
1616
default:
1717
Small:
1818
name: rnw-pool-2
19-
demands: ImageOverride -equals rnw-img-vs2022-node18
19+
demands: ImageOverride -equals rnw-img-vs2022-node22
2020
Medium:
2121
name: rnw-pool-4
22-
demands: ImageOverride -equals rnw-img-vs2022-node18
22+
demands: ImageOverride -equals rnw-img-vs2022-node22
2323
Large:
2424
name: rnw-pool-8
25-
demands: ImageOverride -equals rnw-img-vs2022-node18
25+
demands: ImageOverride -equals rnw-img-vs2022-node22
2626

2727
stages:
2828
- template: stages.yml
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "prerelease",
3+
"comment": "Upgrade to node22",
4+
"packageName": "@office-iss/react-native-win32",
5+
"email": "[email protected]",
6+
"dependentChangeType": "patch"
7+
}

0 commit comments

Comments
 (0)