I have a hybrid C++/Python project. It uses pybind11 to wrap C++ code for Python and bazel to build the solution. I'm quite happy with this technology stack. Upon installing a C++ compiler, a Python distribution and bazel, a single bazel run command can download dependencies, build and run the entire C++/absl/Python/numpy conglomerate.
But in order to make things even simpler for the users I would like to package my code as a PyPI package, so that it can be downloaded with pip install. I want the package to be cross-platform and run on Windows, Linux and MacOS.
What is the clearest way to set up a pipeline that builds, packages and uploads everything to PyPI when a new release is produced?