[CI] Refactor wheel jobs
Changes to the wheels pipeline:
- 3 build jobs and publish job are extracted into a child pipeline, see https://gitlab.opengeosys.org/ogs/ogs/-/pipelines/12363 for an example
- this child pipeline can be manually triggered, wheels can be downloaded from their respective jobs via job artifacts
- if on a merge request a manual trigger builds wheels for Python 3.9 and 3.10 only
- if on master a manual trigger also uploads to test.pypi.org
- child pipeline is triggered for release pipeline and wheels are uploaded to pypi.org
- wheels now use setuptools_scm for getting the git version (maybe the version info could be consumed by ogs in the future, on the CMake side).
I had to make these adjustments as the wheel builds currently take some time:
- Linux: they build in Docker and currently have no ccache or cpmcache, there is maybe a solution to this problem (cibuildwheel mounts some host directories by default which then could be used as cache locations) which will be testet and implemented later on
- Win: builds work only for the CMake MSVC generator which does not parallelize as good as with Ninja
Maybe these issues can be addressed in the future...
-
Tests covering your feature were added?