Spaces:
Running
on
Zero
Running
on
Zero
name: Mirror Community Pipeline | |
on: | |
# Push changes on the main branch | |
push: | |
branches: | |
- main | |
paths: | |
- 'examples/community/**.py' | |
# And on tag creation (e.g. `v0.28.1`) | |
tags: | |
- '*' | |
# Manual trigger with ref input | |
workflow_dispatch: | |
inputs: | |
ref: | |
description: "Either 'main' or a tag ref" | |
required: true | |
default: 'main' | |
jobs: | |
mirror_community_pipeline: | |
runs-on: ubuntu-latest | |
steps: | |
# Checkout to correct ref | |
# If workflow dispatch | |
# If ref is 'main', set: | |
# CHECKOUT_REF=refs/heads/main | |
# PATH_IN_REPO=main | |
# Else it must be a tag. Set: | |
# CHECKOUT_REF=refs/tags/{tag} | |
# PATH_IN_REPO={tag} | |
# If not workflow dispatch | |
# If ref is 'refs/heads/main' => set 'main' | |
# Else it must be a tag => set {tag} | |
- name: Set checkout_ref and path_in_repo | |
run: | | |
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then | |
if [ -z "${{ github.event.inputs.ref }}" ]; then | |
echo "Error: Missing ref input" | |
exit 1 | |
elif [ "${{ github.event.inputs.ref }}" == "main" ]; then | |
echo "CHECKOUT_REF=refs/heads/main" >> $GITHUB_ENV | |
echo "PATH_IN_REPO=main" >> $GITHUB_ENV | |
else | |
echo "CHECKOUT_REF=refs/tags/${{ github.event.inputs.ref }}" >> $GITHUB_ENV | |
echo "PATH_IN_REPO=${{ github.event.inputs.ref }}" >> $GITHUB_ENV | |
fi | |
elif [ "${{ github.ref }}" == "refs/heads/main" ]; then | |
echo "CHECKOUT_REF=${{ github.ref }}" >> $GITHUB_ENV | |
echo "PATH_IN_REPO=main" >> $GITHUB_ENV | |
else | |
# e.g. refs/tags/v0.28.1 -> v0.28.1 | |
echo "CHECKOUT_REF=${{ github.ref }}" >> $GITHUB_ENV | |
echo "PATH_IN_REPO=$(echo ${{ github.ref }} | sed 's/^refs\/tags\///')" >> $GITHUB_ENV | |
fi | |
- name: Print env vars | |
run: | | |
echo "CHECKOUT_REF: ${{ env.CHECKOUT_REF }}" | |
echo "PATH_IN_REPO: ${{ env.PATH_IN_REPO }}" | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ env.CHECKOUT_REF }} | |
# Setup + install dependencies | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.10" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install --upgrade huggingface_hub | |
# Check secret is set | |
- name: whoami | |
run: huggingface-cli whoami | |
env: | |
HF_TOKEN: ${{ secrets.HF_TOKEN_MIRROR_COMMUNITY_PIPELINES }} | |
# Push to HF! (under subfolder based on checkout ref) | |
# https://huggingface.co/datasets/diffusers/community-pipelines-mirror | |
- name: Mirror community pipeline to HF | |
run: huggingface-cli upload diffusers/community-pipelines-mirror ./examples/community ${PATH_IN_REPO} --repo-type dataset | |
env: | |
PATH_IN_REPO: ${{ env.PATH_IN_REPO }} | |
HF_TOKEN: ${{ secrets.HF_TOKEN_MIRROR_COMMUNITY_PIPELINES }} |