This MR adds a Gitlab CI pipeline to run tests, mypy and linting on python 3.7 and 3.9.
Build jobs will be triggered each time a change set is pushed, or when opening a merge request.
test stage, two CI jobs will be executed in parallel for
python 3.7 and 3.9 (the envs declared in
A manual step in the
publish stage will build sdist/bdist pacakges and
push them Gitlab's PyPI Registry (e.g. https://gitlab.wikimedia.org/repos/data-engineering/workflow_utils/-/packages/82).
I opted to use dedicated Python 3.7/3.9 images rather than bootstrapping with
pyenv (or similar),
to avoid having to manage additional setup logic. To the best of my knowledge
pyenv is not packaged in debian buster (the base image I used).