Page MenuHomePhabricator

Upgrade all CI jobs for WMF-deployed projects from Node 16 to Node 18
Open, Needs TriagePublic

Event Timeline

For Codex, we rely on some tools (such as Vite) which have dropped support for Node 16 as of their current version.

Is there any way that certain projects can opt in to newer versions of Node for CI jobs soon-ish? If not, this is going to start holding us back in the relatively near future.

Relatedly, would migrating a particular project like Codex over to Gitlab (per T352488) make it easier for us to control things like Node versions for CI jobs?

For Codex, we rely on some tools (such as Vite) which have dropped support for Node 16 as of their current version.

Is there any way that certain projects can opt in to newer versions of Node for CI jobs soon-ish? If not, this is going to start holding us back in the relatively near future.

Yes, Codex has its own bespoke CI that you can adjust as you see fit. This won't work for shared CI contexts (like CI jobs run on Codex's output inside MW core), but I imagine that's not a concern for you?

Relatedly, would migrating a particular project like Codex over to Gitlab (per T352488) make it easier for us to control things like Node versions for CI jobs?

It'd make it more directly controllable (as it'd be in-repo), yes.

For Codex, we rely on some tools (such as Vite) which have dropped support for Node 16 as of their current version.

Is there any way that certain projects can opt in to newer versions of Node for CI jobs soon-ish? If not, this is going to start holding us back in the relatively near future.

Yes, Codex has its own bespoke CI that you can adjust as you see fit. This won't work for shared CI contexts (like CI jobs run on Codex's output inside MW core), but I imagine that's not a concern for you?

How would I go about requesting a CI Node upgrade for Codex? Is there a repo somewhere I can open a patch against, or a phab task I should file somewhere?

I look forward to being able to directly control a gitlab-ci.yml file within Codex to do this.

For Codex, we rely on some tools (such as Vite) which have dropped support for Node 16 as of their current version.

Is there any way that certain projects can opt in to newer versions of Node for CI jobs soon-ish? If not, this is going to start holding us back in the relatively near future.

Yes, Codex has its own bespoke CI that you can adjust as you see fit. This won't work for shared CI contexts (like CI jobs run on Codex's output inside MW core), but I imagine that's not a concern for you?

How would I go about requesting a CI Node upgrade for Codex? Is there a repo somewhere I can open a patch against, or a phab task I should file somewhere?

Yeah, file a task in Continuous-Integration-Config (but direct patches welcome!). This is where the CI for Codex is defined.

Change 980387 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] Zuul: Provide generic node 18 jobs (no-op)

https://gerrit.wikimedia.org/r/980387

Change 980387 merged by jenkins-bot:

[integration/config@master] Zuul: Provide generic node 18 jobs (no-op)

https://gerrit.wikimedia.org/r/980387

Change 980395 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] jjb: Provide general Node 18 and Node 20 jobs

https://gerrit.wikimedia.org/r/980395

Change 980395 merged by jenkins-bot:

[integration/config@master] jjb: Provide general Node 18 and Node 20 jobs

https://gerrit.wikimedia.org/r/980395

Change 980401 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] Zuul: Add experimental Node 18 and Node 20 jobs almost everywhere

https://gerrit.wikimedia.org/r/980401

Change 980401 merged by jenkins-bot:

[integration/config@master] Zuul: Add experimental Node 18 and Node 20 jobs almost everywhere

https://gerrit.wikimedia.org/r/980401

Mentioned in SAL (#wikimedia-releng) [2023-12-05T14:38:16Z] <James_F> Zuul: Add experimental Node 18 and Node 20 jobs almost everywhere for T331180 and T343827

Change 989842 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] Zuul: Mass-migrate all node16 jobs to node18

https://gerrit.wikimedia.org/r/989842

Change 989844 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] jjb: Swap node16 with node18 and drop unused jobs

https://gerrit.wikimedia.org/r/989844

Change 989842 merged by jenkins-bot:

[integration/config@master] Zuul: Mass-migrate all node16 jobs to node18

https://gerrit.wikimedia.org/r/989842

Mentioned in SAL (#wikimedia-releng) [2024-01-11T15:39:18Z] <James_F> Zuul: Mass-migrate all node16 jobs to node18 for T331180

Change 989844 merged by jenkins-bot:

[integration/config@master] jjb: Swap node16 with node18 and drop unused jobs

https://gerrit.wikimedia.org/r/989844

Change 990128 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] Docker: [quibble-buster] Switch Node from 16 to 18 and cascade

https://gerrit.wikimedia.org/r/990128

Change 990129 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] jjb: Switch quibble-based jobs to Node 18 images too

https://gerrit.wikimedia.org/r/990129

Change 990128 merged by jenkins-bot:

[integration/config@master] Docker: [quibble-buster] Switch Node from 16 to 18 and cascade

https://gerrit.wikimedia.org/r/990128

Mentioned in SAL (#wikimedia-releng) [2024-01-12T15:18:57Z] <James_F> Docker: Publishing Quibble images using Node 18 not 16 for T331180

Change 990134 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] Docker: [ajv] Switch Node from 16 to 18

https://gerrit.wikimedia.org/r/990134

Change 990135 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] Docker: [sonar-scanner] Switch Node from 16 to 18

https://gerrit.wikimedia.org/r/990135

Change 990136 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] jjb: Update codehealth jobs to sonar-scanner image with node 18

https://gerrit.wikimedia.org/r/990136

Change 990137 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] Docker: Drop all node16 images, no longer used

https://gerrit.wikimedia.org/r/990137

Change 990134 merged by jenkins-bot:

[integration/config@master] Docker: [ajv] Switch Node from 16 to 18

https://gerrit.wikimedia.org/r/990134

Change 990135 merged by jenkins-bot:

[integration/config@master] Docker: [sonar-scanner] Switch Node from 16 to 18

https://gerrit.wikimedia.org/r/990135

Change 990136 merged by jenkins-bot:

[integration/config@master] jjb: Update codehealth jobs to sonar-scanner image with node 18

https://gerrit.wikimedia.org/r/990136

Change 990129 merged by jenkins-bot:

[integration/config@master] jjb: Switch quibble-based jobs to Node 18 images too

https://gerrit.wikimedia.org/r/990129

Change 990137 merged by jenkins-bot:

[integration/config@master] Docker: Drop all node16 images, no longer used

https://gerrit.wikimedia.org/r/990137