📦 deps(skills): add karpathy thirdparty sync
This commit is contained in:
@@ -27,6 +27,15 @@ def write_config(root: Path, name: str, body: str) -> Path:
|
||||
return config_path
|
||||
|
||||
|
||||
def bash_path(path: Path) -> str:
|
||||
resolved = path.resolve()
|
||||
if sys.platform != "win32":
|
||||
return resolved.as_posix()
|
||||
drive = resolved.drive.rstrip(":").lower()
|
||||
rest = resolved.as_posix()[2:]
|
||||
return f"/mnt/{drive}{rest}"
|
||||
|
||||
|
||||
class PlaybookCliTests(unittest.TestCase):
|
||||
def assert_style_cleanup_tsl_docs_prefix(
|
||||
self, root: Path, agents_home: Path, docs_prefix: str
|
||||
@@ -275,6 +284,67 @@ skills = ["brainstorming"]
|
||||
self.assertEqual(result.returncode, 0)
|
||||
self.assertTrue(skill_file.is_file())
|
||||
|
||||
def test_install_generated_thirdparty_karpathy_skill_after_sync(self):
|
||||
with tempfile.TemporaryDirectory() as tmp_dir:
|
||||
tmp_root = Path(tmp_dir)
|
||||
mirror = tmp_root / "origin.git"
|
||||
repo = tmp_root / "repo"
|
||||
target = tmp_root / "agents"
|
||||
|
||||
clone_mirror = subprocess.run(
|
||||
["git", "clone", "--mirror", str(ROOT), str(mirror)],
|
||||
capture_output=True,
|
||||
text=True,
|
||||
)
|
||||
self.assertEqual(clone_mirror.returncode, 0, msg=clone_mirror.stderr)
|
||||
|
||||
clone_repo = subprocess.run(
|
||||
["git", "clone", str(mirror), str(repo)],
|
||||
capture_output=True,
|
||||
text=True,
|
||||
)
|
||||
self.assertEqual(clone_repo.returncode, 0, msg=clone_repo.stderr)
|
||||
|
||||
set_remote = subprocess.run(
|
||||
["git", "-C", str(repo), "remote", "set-url", "origin", bash_path(mirror)],
|
||||
capture_output=True,
|
||||
text=True,
|
||||
)
|
||||
self.assertEqual(set_remote.returncode, 0, msg=set_remote.stderr)
|
||||
|
||||
manifest_src = ROOT / ".gitea" / "ci" / "thirdparty_skills.json"
|
||||
manifest_dst = repo / ".gitea" / "ci" / "thirdparty_skills.json"
|
||||
manifest_dst.write_text(manifest_src.read_text(encoding="utf-8"), encoding="utf-8")
|
||||
|
||||
sync_result = subprocess.run(
|
||||
["bash", ".gitea/ci/sync_thirdparty_skills.sh"],
|
||||
cwd=repo,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
)
|
||||
self.assertEqual(
|
||||
sync_result.returncode, 0, msg=sync_result.stdout + sync_result.stderr
|
||||
)
|
||||
|
||||
config_body = f"""
|
||||
[playbook]
|
||||
project_root = "{tmp_root}"
|
||||
deploy_root = "{CUSTOM_DEPLOY_ROOT}"
|
||||
|
||||
[install_skills]
|
||||
agents_home = "{target}"
|
||||
mode = "list"
|
||||
skills = ["karpathy-guidelines"]
|
||||
"""
|
||||
config_path = tmp_root / "playbook.toml"
|
||||
config_path.write_text(config_body, encoding="utf-8")
|
||||
|
||||
result = run_script(repo / "scripts" / "playbook.py", "-config", str(config_path))
|
||||
|
||||
skill_file = target / "skills" / "karpathy-guidelines" / "SKILL.md"
|
||||
self.assertEqual(result.returncode, 0, msg=result.stdout + result.stderr)
|
||||
self.assertTrue(skill_file.is_file())
|
||||
|
||||
def test_install_skills_rejects_removed_tsl_guide(self):
|
||||
with tempfile.TemporaryDirectory() as tmp_dir:
|
||||
target = Path(tmp_dir) / "agents"
|
||||
|
||||
Reference in New Issue
Block a user