Files
deepseek-harness/docs/ci-compatible-selfhosted.md
T

2.6 KiB

Node compatibility CI runners

English | 中文

Summary

The three Node compatibility jobs can use the existing Linux self-hosted pool without changing their versions, required checks, or master scheduling. CI owns the runner selection; the decision record explains isolation and trade-offs.

Table of Contents

Runner selection

Node 22.19, 24.9, and 26 select [self-hosted, linux, x64, vm-backup] only when DSH_CI_FAILOVER_LINUX=selfhosted and the PR author is not Dependabot, the head repository matches the current repository, and the head repository is not a fork. All other cases select ubuntu-latest. The Python SDK job remains hosted.

Each matrix entry runs one repository gate at a time. The matrix retains independent jobs and does not cancel sibling versions on failure. Runner registrations share host resources; their count is not a count of independent machines.

Installation and cleanup

Self-hosted Node installations use a tool cache beneath runner.temp. A setup-node-only ESM preload sets the path inside the action process because the Actions runner overwrites reserved RUNNER_* step variables. The following step rejects a Node executable outside that temporary installation; later compatibility processes do not inherit the preload. pnpm setup uses its runner-and-run-private destination. Node compile caches and node-gyp headers also stay beneath runner temp; the pnpm content-addressed store remains persistent. Hosted jobs retain their normal tool cache and pnpm caching. Self-hosted jobs do not restore or upload hosted package caches.

The runner owns temporary-directory cleanup between jobs. These jobs do not install system packages or change global Node symlinks. The shared image must already provide the compiler and Python dependencies needed by native npm packages. A cold temporary Node cache requires downloading the selected runtime again.

Verification

pnpm exec vitest run scripts/ci-compatible-selfhosted.spec.ts scripts/ci-workflow.spec.ts checks routing, hosted fallback, matrix preservation, cache paths, and the executed environment setup. The actual Node matrix on the self-hosted host remains the required platform verification; local workflow tests do not prove native runtime compatibility or capacity under concurrent PR load.

Dev Note

None.