name: Deploy to HuggingFace Spaces | |
on: | |
push: | |
branches: | |
- hf-space | |
workflow_dispatch: | |
jobs: | |
check-secret: | |
runs-on: ubuntu-latest | |
outputs: | |
token-set: ${{ steps.check-key.outputs.defined }} | |
steps: | |
- id: check-key | |
env: | |
HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
if: "${{ env.HF_TOKEN != '' }}" | |
run: echo "defined=true" >> $GITHUB_OUTPUT | |
deploy: | |
runs-on: ubuntu-latest | |
needs: [check-secret] | |
if: needs.check-secret.outputs.token-set == 'true' | |
env: | |
HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
HF_USERNAME: ${{ secrets.HF_USERNAME }} | |
HF_SPACE_NAME: ${{ secrets.HF_SPACE_NAME }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Remove git history | |
run: rm -rf .git | |
- name: Prepend YAML front matter to README.md | |
run: | | |
cat <<EOF >README.md | |
--- | |
title: Open WebUI | |
emoji: 🐳 | |
colorFrom: purple | |
colorTo: gray | |
sdk: docker | |
app_port: 8080 | |
hf_oauth: true | |
hf_oauth_scopes: | |
--- | |
$(cat README.md) | |
EOF | |
- name: Configure git | |
run: | | |
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
git config --global user.name "github-actions[bot]" | |
- name: Set up Git and push to Space | |
run: | | |
git init --initial-branch=main | |
git lfs track "*.ttf" | |
rm demo.gif | |
git add . | |
git commit -m "GitHub deploy: ${{ github.sha }}" | |
git push --force https://${HF_USERNAME}:${HF_TOKEN}@huggingface.co/spaces/${HF_USERNAME}/${HF_SPACE_NAME} main | |