Spaces:
Running on Zero
Running on Zero
| name: UI Publish | |
| on: | |
| workflow_call: | |
| inputs: | |
| version_tag: | |
| description: 'Version tag to publish under (e.g., b1234)' | |
| required: true | |
| type: string | |
| secrets: | |
| hf_token: | |
| description: 'Hugging Face token with write access' | |
| required: true | |
| jobs: | |
| build: | |
| name: Build static output | |
| uses: ./.github/workflows/ui-build.yml | |
| publish: | |
| name: Publish UI Static Output | |
| needs: build | |
| runs-on: ubuntu-slim | |
| permissions: | |
| contents: read | |
| env: | |
| HF_BUCKET_NAME: ${{ vars.HF_BUCKET_UI_STATIC_OUTPUT }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Download UI build artifact | |
| uses: actions/download-artifact@v7 | |
| with: | |
| name: ui-build | |
| path: tools/ui/dist/ | |
| - name: Create distribution archive | |
| run: | | |
| tar -czf dist.tar.gz -C tools/ui/dist . | |
| sha256sum dist.tar.gz > dist.tar.gz.sha256 | |
| mv dist.tar.gz dist.tar.gz.sha256 tools/ui/dist/ | |
| - name: Install Hugging Face Hub CLI | |
| run: pip install -U huggingface_hub | |
| - name: Authenticate with Hugging Face | |
| run: hf auth login --token ${{ secrets.hf_token }} | |
| - name: Sync built files to Hugging Face bucket (version tag) | |
| run: | | |
| # Upload the built files to the Hugging Face bucket under the release version | |
| hf buckets sync tools/ui/dist hf://buckets/ggml-org/${{ env.HF_BUCKET_NAME }}/${{ inputs.version_tag }} --delete --quiet | |
| - name: Sync built files to Hugging Face bucket (latest) | |
| run: | | |
| # Also upload to the 'latest' directory for fallback downloads | |
| hf buckets sync tools/ui/dist hf://buckets/ggml-org/${{ env.HF_BUCKET_NAME }}/latest --delete --quiet | |
| - name: Verify upload | |
| run: | | |
| # List the files in the bucket to verify the upload | |
| hf buckets list hf://buckets/ggml-org/${{ env.HF_BUCKET_NAME }}/${{ inputs.version_tag }} -R -h | |
| - name: Clean up root-level files | |
| run: | | |
| # Clean up any old root-level files from previous non-versioned deployments | |
| hf buckets rm ggml-org/${{ env.HF_BUCKET_NAME }}/index.html --yes 2>/dev/null || true | |
| hf buckets rm ggml-org/${{ env.HF_BUCKET_NAME }}/bundle.js --yes 2>/dev/null || true | |
| hf buckets rm ggml-org/${{ env.HF_BUCKET_NAME }}/bundle.css --yes 2>/dev/null || true | |