🐛 fix(workflow): manage Node versions with fnm

This commit is contained in:
csh
2026-08-13 17:33:55 +08:00
parent f90faa10c3
commit fac69aafbd
6 changed files with 126 additions and 5 deletions
+13 -2
View File
@@ -13,6 +13,7 @@ LOOKUP_PATH = SKILL_ROOT / "scripts" / "lookup.py"
SKILL_PATH = SKILL_ROOT / "SKILL.md"
CI_PATH = ROOT / ".gitea" / "workflows" / "checks.yml"
PREPARE_PATH = ROOT / ".gitea" / "workflows" / "prepare.yml"
NODE_VERSION_PATH = ROOT / ".node-version"
def load_lookup_module():
@@ -445,8 +446,18 @@ class TslSyntaxReferenceTests(unittest.TestCase):
"node_modules/prettier/bin/prettier.cjs --check skills/tsl-syntax-reference",
workflow,
)
self.assertIn("[node]=\"nodejs\"", prepare)
self.assertIn("[npm]=\"npm\"", prepare)
self.assertIn("[unzip]=\"unzip\"", prepare)
self.assertIn('FNM_BIN: "/data/bin/fnm"', prepare)
self.assertIn('FNM_DIR: "/data/fnm"', prepare)
self.assertIn('"$FNM_BIN" install "$node_version"', prepare)
self.assertNotIn('[node]="nodejs"', prepare)
self.assertNotIn('[npm]="npm"', prepare)
self.assertIn('"$FNM_BIN" use --install-if-missing "$node_version"', workflow)
self.assertIn("node --version", workflow)
self.assertRegex(
NODE_VERSION_PATH.read_text(encoding="utf-8").strip(),
r"^\d+\.\d+\.\d+$",
)
if __name__ == "__main__":