name: Upload package on: push: tags: - '*' workflow_dispatch: jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.13' - name: Install dependencies run: | python -m pip install --upgrade pip pip install -U build twine - name: Build package run: | python -m build - name: Publish package env: TWINE_USERNAME: "__token__" run: | if [[ "$GITHUB_EVENT_NAME" == "workflow_dispatch" ]]; then export TWINE_REPOSITORY="testpypi" export TWINE_PASSWORD="${{ secrets.TEST_PYPI_UPLOAD_TOKEN }}" elif [[ "$GITHUB_EVENT_NAME" == "push" ]]; then export TWINE_REPOSITORY="pypi" export TWINE_PASSWORD="${{ secrets.PYPI_UPLOAD_TOKEN }}" else echo "Unknown event name: ${GITHUB_EVENT_NAME}" exit 1 fi python -m twine upload dist/*