diff --git a/.github/workflows/deploy-pypi.yml b/.github/workflows/deploy-pypi.yml new file mode 100644 index 0000000000..3e89a67324 --- /dev/null +++ b/.github/workflows/deploy-pypi.yml @@ -0,0 +1,40 @@ +# This workflow will upload a Python Package using Twine when a release is created +# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries + +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Upload Python Package + +on: + pull_request: + types: closed + branches: + - main + - release** + paths: + - 'gradio/version.txt' + +permissions: + contents: read + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v3 + with: + python-version: '3.x' + - name: Install dependencies + run: python -m pip install --upgrade pip + - name: Build package + run: scripts/gh_action_pypi.sh + - name: Publish package + uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29 + with: + user: __token__ + password: ${{ secrets.PYPI_API_TOKEN }} diff --git a/scripts/gh_action_pypi.sh b/scripts/gh_action_pypi.sh new file mode 100644 index 0000000000..8d6a0a3a78 --- /dev/null +++ b/scripts/gh_action_pypi.sh @@ -0,0 +1,24 @@ +#!/bin/bash +if [ -z "$(ls | grep CONTRIBUTING.md)" ]; then + echo "Please run the script from repo directory" + exit -1 +else + old_version=$(grep -Po "(?<=version=\")[^\"]+(?=\")" setup.py) + read -r new_version < gradio/version.txt + sed -i "s/version=\"$old_version\"/version=\"$new_version\"/g" setup.py + + rm -rf gradio/templates/frontend + rm -rf gradio/templates/cdn + cd ui + pnpm i + pnpm build + GRADIO_VERSION=$new_version pnpm build:cdn + cd .. + aws s3 cp gradio/templates/cdn s3://gradio/$new_version/ --recursive # requires aws cli (contact maintainers for credentials) + cp gradio/templates/cdn/index.html gradio/templates/frontend/share.html + + rm -r dist/* + rm -r build/* + python3 setup.py sdist bdist_wheel +fi +