| name: Build & Publish h2oGPT Python wheel to PYPI | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| pypi-index: | |
| type: choice | |
| description: PyPI index that needed to be published | |
| required: true | |
| default: Test-PyPI | |
| options: | |
| - PyPI | |
| - Test-PyPI | |
| version: | |
| description: | | |
| Override the current version for the python package for dev purposes when uploading to Test-PyPI | |
| type: string | |
| jobs: | |
| build_and_upload: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v3.5.3 | |
| - uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.10' | |
| - name: Install Dependencies | |
| run: | | |
| python3.10 -m pip install --upgrade pip | |
| python3.10 -m pip install setuptools wheel twine --upgrade | |
| - name: Modify Version | |
| if: ${{ inputs.version != ''}} | |
| run: | | |
| echo ${{ inputs.version}} > version.txt | |
| echo "h2ogpt-wheel-version = $(cat version.txt)" | |
| - name: Build Wheel | |
| run: make clean dist | |
| - name: Publish to Test-PyPI | |
| if: ${{ inputs.pypi-index == 'Test-PyPI' }} | |
| run: | | |
| twine upload -r testpypi dist/* | |
| env: | |
| TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} | |
| TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | |
| - name: Publish to PyPI | |
| if: ${{ inputs.pypi-index == 'PyPI' }} | |
| run: | | |
| twine upload dist/* | |
| env: | |
| TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} | |
| TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | |