auto-sync 2026-07-04T05:35:30Z workspace (part 3)
Browse files
workspace/scripts/hf_push_once.sh
CHANGED
|
@@ -12,6 +12,8 @@ HF_SYNC_PRIVATE="${HF_SYNC_PRIVATE:-0}"
|
|
| 12 |
HF_SYNC_LOG_DIR="${HF_SYNC_LOG_DIR:-$PROJECT_DIR/outputs/hf_sync}"
|
| 13 |
HF_SYNC_COMMIT_PREFIX="${HF_SYNC_COMMIT_PREFIX:-auto-sync}"
|
| 14 |
HF_SYNC_AUTH_TIMEOUT="${HF_SYNC_AUTH_TIMEOUT:-60}"
|
|
|
|
|
|
|
| 15 |
|
| 16 |
mkdir -p "$HF_SYNC_LOG_DIR"
|
| 17 |
|
|
@@ -104,6 +106,52 @@ upload_root() {
|
|
| 104 |
"${exclude_args[@]}"
|
| 105 |
}
|
| 106 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 107 |
write_manifest() {
|
| 108 |
python3 - "$HF_SYNC_LOG_DIR/last_manifest.json" "$PROJECT_DIR" "$SCRATCH_ROOT" "$HF_REPO_ID" <<'PY'
|
| 109 |
from __future__ import annotations
|
|
@@ -185,4 +233,5 @@ if [[ -n "${HF_SYNC_EXTRA_ROOTS:-}" ]]; then
|
|
| 185 |
fi
|
| 186 |
|
| 187 |
upload_root "$HF_SYNC_LOG_DIR/last_manifest.json" "manifests/hf_sync_last_manifest.json"
|
|
|
|
| 188 |
log "sync complete"
|
|
|
|
| 12 |
HF_SYNC_LOG_DIR="${HF_SYNC_LOG_DIR:-$PROJECT_DIR/outputs/hf_sync}"
|
| 13 |
HF_SYNC_COMMIT_PREFIX="${HF_SYNC_COMMIT_PREFIX:-auto-sync}"
|
| 14 |
HF_SYNC_AUTH_TIMEOUT="${HF_SYNC_AUTH_TIMEOUT:-60}"
|
| 15 |
+
HF_SYNC_CLEAN_REMOTE_MARKDOWN="${HF_SYNC_CLEAN_REMOTE_MARKDOWN:-1}"
|
| 16 |
+
HF_SYNC_REMOTE_MARKDOWN_KEEP="${HF_SYNC_REMOTE_MARKDOWN_KEEP:-workspace/README.md}"
|
| 17 |
|
| 18 |
mkdir -p "$HF_SYNC_LOG_DIR"
|
| 19 |
|
|
|
|
| 106 |
"${exclude_args[@]}"
|
| 107 |
}
|
| 108 |
|
| 109 |
+
cleanup_remote_markdown() {
|
| 110 |
+
if [[ "$HF_SYNC_CLEAN_REMOTE_MARKDOWN" != "1" ]]; then
|
| 111 |
+
log "skip remote Markdown cleanup: HF_SYNC_CLEAN_REMOTE_MARKDOWN=$HF_SYNC_CLEAN_REMOTE_MARKDOWN"
|
| 112 |
+
return 0
|
| 113 |
+
fi
|
| 114 |
+
if [[ "$HF_SYNC_DRY_RUN" == "1" ]]; then
|
| 115 |
+
log "dry-run would remove remote Markdown except: $HF_SYNC_REMOTE_MARKDOWN_KEEP"
|
| 116 |
+
return 0
|
| 117 |
+
fi
|
| 118 |
+
log "cleanup remote Markdown; keep=$HF_SYNC_REMOTE_MARKDOWN_KEEP"
|
| 119 |
+
python3 - "$HF_REPO_ID" "$HF_REPO_TYPE" "$HF_SYNC_REMOTE_MARKDOWN_KEEP" "$HF_SYNC_COMMIT_PREFIX" <<'PY'
|
| 120 |
+
from __future__ import annotations
|
| 121 |
+
|
| 122 |
+
import os
|
| 123 |
+
import sys
|
| 124 |
+
from datetime import datetime, timezone
|
| 125 |
+
|
| 126 |
+
from huggingface_hub import HfApi
|
| 127 |
+
|
| 128 |
+
repo_id = sys.argv[1]
|
| 129 |
+
repo_type = sys.argv[2]
|
| 130 |
+
keep = {item.strip("/") for item in sys.argv[3].split(":") if item.strip()}
|
| 131 |
+
commit_prefix = sys.argv[4]
|
| 132 |
+
|
| 133 |
+
api = HfApi(token=os.environ.get("HF_TOKEN") or None)
|
| 134 |
+
paths = api.list_repo_files(repo_id, repo_type=repo_type)
|
| 135 |
+
to_delete = sorted(path for path in paths if path.endswith(".md") and path not in keep)
|
| 136 |
+
if not to_delete:
|
| 137 |
+
print("remote_markdown_cleanup: nothing_to_delete")
|
| 138 |
+
raise SystemExit(0)
|
| 139 |
+
|
| 140 |
+
stamp = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
|
| 141 |
+
info = api.delete_files(
|
| 142 |
+
repo_id,
|
| 143 |
+
to_delete,
|
| 144 |
+
repo_type=repo_type,
|
| 145 |
+
commit_message=f"{commit_prefix} {stamp} cleanup stale markdown",
|
| 146 |
+
commit_description=(
|
| 147 |
+
"Keep the configured README-only Markdown contract on the Hub. "
|
| 148 |
+
f"Kept paths: {', '.join(sorted(keep)) or '(none)'}."
|
| 149 |
+
),
|
| 150 |
+
)
|
| 151 |
+
print(f"remote_markdown_cleanup: deleted={len(to_delete)} commit={info.commit_url}")
|
| 152 |
+
PY
|
| 153 |
+
}
|
| 154 |
+
|
| 155 |
write_manifest() {
|
| 156 |
python3 - "$HF_SYNC_LOG_DIR/last_manifest.json" "$PROJECT_DIR" "$SCRATCH_ROOT" "$HF_REPO_ID" <<'PY'
|
| 157 |
from __future__ import annotations
|
|
|
|
| 233 |
fi
|
| 234 |
|
| 235 |
upload_root "$HF_SYNC_LOG_DIR/last_manifest.json" "manifests/hf_sync_last_manifest.json"
|
| 236 |
+
cleanup_remote_markdown
|
| 237 |
log "sync complete"
|