Skip to content

Commit ce77658

Browse files
authored
fix: kernels upload to a repo branch (#168)
* fix: kernels upload to a repo branch * up
1 parent b96b154 commit ce77658

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

src/kernels/cli.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import sys
55
from pathlib import Path
66

7-
from huggingface_hub import create_repo, upload_folder
7+
from huggingface_hub import create_repo, upload_folder, create_branch
88

99
from kernels.compat import tomllib
1010
from kernels.lockfile import KernelLock, get_kernel_locks
@@ -204,6 +204,7 @@ def lock_kernels(args):
204204

205205

206206
def upload_kernels(args):
207+
# Resolve `kernel_dir` to be uploaded.
207208
kernel_dir = Path(args.kernel_dir).resolve()
208209
build_dir = kernel_dir / "build"
209210
if not kernel_dir.is_dir():
@@ -215,6 +216,9 @@ def upload_kernels(args):
215216
repo_id=args.repo_id, private=args.private, exist_ok=True
216217
).repo_id
217218

219+
if args.branch is not None:
220+
create_branch(repo_id=repo_id, branch=args.branch, exist_ok=True)
221+
218222
delete_patterns: set[str] = set()
219223
for build_variant in build_dir.iterdir():
220224
if build_variant.is_dir():

tests/test_kernel_upload.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from typing import List
88

99
import pytest
10-
from huggingface_hub import delete_repo, model_info
10+
from huggingface_hub import delete_repo, model_info, list_repo_refs
1111

1212
from kernels.cli import upload_kernels
1313

@@ -83,6 +83,11 @@ def test_kernel_upload_works_as_expected(branch):
8383

8484
repo_filenames = get_filenames_from_a_repo(REPO_ID)
8585
assert any(str(script_path.name) for f in repo_filenames)
86+
87+
if branch is not None:
88+
refs = list_repo_refs(repo_id=REPO_ID)
89+
assert any(ref_branch.name == branch for ref_branch in refs.branches)
90+
8691
delete_repo(repo_id=REPO_ID)
8792

8893

@@ -95,7 +100,7 @@ def test_kernel_upload_deletes_as_expected():
95100
build_dir.mkdir(parents=True, exist_ok=True)
96101
script_path = build_dir / "foo_2025.py"
97102
script_path.write_text(PY_CONTENT)
98-
upload_kernels(UploadArgs(tmpdir, REPO_ID, False))
103+
upload_kernels(UploadArgs(tmpdir, REPO_ID, False, None))
99104

100105
repo_filenames = get_filenames_from_a_repo(REPO_ID)
101106
filename_to_change = get_filename_to_change(repo_filenames)
@@ -107,7 +112,7 @@ def test_kernel_upload_deletes_as_expected():
107112
changed_filename = next_filename(Path(filename_to_change))
108113
script_path = build_dir / changed_filename
109114
script_path.write_text(PY_CONTENT)
110-
upload_kernels(UploadArgs(tmpdir, REPO_ID, False))
115+
upload_kernels(UploadArgs(tmpdir, REPO_ID, False, None))
111116

112117
repo_filenames = get_filenames_from_a_repo(REPO_ID)
113118
assert any(str(changed_filename) in k for k in repo_filenames), f"{repo_filenames=}"

0 commit comments

Comments
 (0)