MagNET / .github /workflows /sync-to-hf.yml
ekwan16's picture
Add files using upload-large-folder tool
64c992d verified
Raw
History Blame Contribute Delete
2.39 kB
name: sync code to hugging face
# Mirrors the CODE to the Hugging Face model repo ekwan16/MagNET on every push to main.
#
# The large model weights and datasets live ONLY on Hugging Face (as Git LFS objects). They are
# gitignored here, so a fresh checkout never contains them, and they are pushed once by hand from a
# workstation (see publish/build_hf_repo.py). This job must therefore NEVER delete anything on the
# Hub.
#
# `hf upload` is additive/overwrite-only: it removes remote files ONLY when given an explicit
# --delete flag.
# ==> NEVER add a --delete flag below. It would wipe the ~42 GB of LFS weights and datasets. <==
# The --exclude patterns below are defense-in-depth for the big-file extensions (a fresh checkout
# has none of them anyway); the actual safety comes from omitting --delete.
on:
push:
branches: [main]
concurrency:
group: sync-to-hf
cancel-in-progress: true
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install the Hugging Face CLI
# Pinned as defense-in-depth so a future CLI default cannot silently change behavior.
# Tighten to the exact version you tested with once you have run this successfully.
run: pip install "huggingface_hub[cli]>=0.34,<1.0"
- name: Ensure the target repo exists and is private
# `hf upload` auto-creates a MISSING repo as PUBLIC. If this Action ever fires before the
# repo has been seeded by hand, this guard creates it private first so nothing is exposed
# early. If the repo already exists this create call errors and `|| true` ignores it (it
# never changes an existing repo's visibility); a bad token still fails loudly at upload.
env:
HF_TOKEN: ${{ secrets.HF_TOKEN }} # must be a WRITE token for ekwan16/MagNET
run: hf repo create ekwan16/MagNET --repo-type=model --private || true
- name: Upload code to the Hub (no deletions)
env:
HF_TOKEN: ${{ secrets.HF_TOKEN }} # must be a WRITE token for ekwan16/MagNET
run: |
hf upload ekwan16/MagNET . . \
--repo-type=model \
--exclude ".git/**" ".github/**" "*.hdf5" "*.mnova" "*.ckpt" \
--commit-message "sync code from github@${{ github.sha }}"