Skip to content

chore(server): align CI, containers, and cloud runtimes on Node 22 - #1716

Open
OskarEichler wants to merge 1 commit into
OutlineFoundation:masterfrom
OskarEichler:codex/node22-runtime
Open

OskarEichler wants to merge 1 commit into
OutlineFoundation:masterfrom
OskarEichler:codex/node22-runtime

Conversation

@OskarEichler

@OskarEichler OskarEichler commented Aug 27, 2026

Copy link
Copy Markdown

Why

Local tooling, CI, container metadata, and deployed service manifests still select Node 18. Aligning them avoids validating one runtime while packaging another.

Changes

  • Select Node 22 in .nvmrc, engine metadata, lockfile root metadata, and CI workflows.
  • Pin the verified Node 22.23.2 Alpine platform images for amd64 and arm64/aarch64 and update the image label.
  • Update App Engine and Cloud Functions runtime selections and prerequisite documentation.
  • Do not change dependency package versions or native proxy pins.

Verification

  • After splitting, all 65 existing manager-metrics, shared-metrics, access-key, and file-operation specs passed again on this isolated branch under Node 22.23.2.

  • Node 22.23.2 ran 65 existing server specs across metrics, access keys, and file operations during the combined-source verification.

  • Image platform digests were read from Docker's registry; the amd64 image configuration reported Node 22.23.2.

  • Reviewed package/lockfile engine consistency, CI/runtime selections, and unchanged dependency versions.

  • Patch isolation and git diff --check passed. Recombining all focused patches reproduces the reviewed source changes exactly.

  • No test/spec files were added or modified; controlled probe drivers are kept outside the repository.

Compatibility and remaining validation

  • Before rollout, build and exercise both container architectures and deploy/test the cloud services. Docker, Linux integration, and Google Cloud runtime tests were not run locally.
  • Eight existing port-probing specs were also tried on the combined branch: three failed identically on unchanged upstream source on this Mac, separate from the 65 passing specs.
  • This updates manifest selections only; no live deployment or production service was changed.

Full npm installation/build checks remain incomplete: npm 12 rejected existing lockfile Git dependencies (EALLOWGIT). Isolated registry-only tooling was used without disabling that safeguard.

Scope

This is one focused part of the reliability review, based directly on upstream master; it does not include the other review patches. No installed client, live VPN/DNS setting, or production service was changed by this patch.

Second review — 2026-08-27

Re-reviewed the CI, container, cloud and developer runtime settings together. Confirmed the package lock dependency graph is unchanged apart from root engine metadata. No additional runtime or dependency upgrade was justified.

All 65 selected existing server specs ran under Node 22.23.2 and targeted TypeScript checks passed on this branch. Full npm installation, packaging, Docker and cloud rollout checks remain outside the completed local verification.

All touched files and nearby callers were reviewed again. Each focused patch was also checked in combination with the other seven patches for this repository. External probe drivers remain outside the repositories; no test/spec files were added or modified. Existing full-build and platform-validation limitations above still apply.

@OskarEichler
OskarEichler requested review from a team and fortuna as code owners August 27, 2026 18:50
@greptile-apps

greptile-apps Bot commented Aug 27, 2026

Copy link
Copy Markdown

Greptile Summary

The PR consistently moves local development, CI, container packaging, App Engine, and Cloud Functions from Node 18 to Node 22.

  • Updates Node and npm prerequisites plus root engine metadata.
  • Selects Node 22 for GitHub Actions and Google Cloud runtimes.
  • Pins architecture-specific Node 22 Alpine container images and updates image metadata.

Confidence Score: 5/5

The PR appears safe to merge, with no concrete changed-code failure identified.

The runtime selectors are consistently aligned, current architecture callers remain covered, and the inspected service packaging and dependencies do not expose a concrete Node 22 incompatibility.

Important Files Changed

Filename Overview
src/shadowbox/Taskfile.yml Updates the pinned amd64 and ARM64 Node Alpine images while preserving existing architecture aliases and build mappings.
src/shadowbox/docker/Dockerfile Aligns the image’s Node-version metadata with the newly pinned Node 22.23.2 base images.
.github/workflows/build_and_test_debug.yml Moves all component build and test jobs to Node 22 without altering their commands or coverage.
src/metrics_server/app_prod.yaml Selects the Node 22 App Engine runtime while preserving production service routing and handlers.
src/sentry_webhook/Taskfile.yml Selects Node 22 for the existing Cloud Functions deployment command.
package.json Aligns the root Node engine declaration with the runtime selected throughout the repository.

Reviews (1): Last reviewed commit: "chore(server): align CI, containers, and..." | Re-trigger Greptile

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant