#!/bin/bash set -euo pipefail ### # # Publishes all *.whl files to PyPI # # Usage: ./publib-pypi [DIR] # # DIR is where *.whl files are looked up (default is "dist/python") # # TWINE_USERNAME (required) # TWINE_PASSWORD (required) # ### cd "${1:-"dist/python"}" [ -z "${TWINE_USERNAME:-}" ] && { echo "Missing TWINE_USERNAME" exit 1 } [ -z "${TWINE_PASSWORD:-}" ] && { echo "Missing TWINE_PASSWORD" exit 1 } if [ -z "$(ls *.whl)" ]; then echo "cannot find any .whl files in $PWD" exit 1 fi python3 -m pip install --user --upgrade twine python3 -m twine upload --verbose --skip-existing *