Add a Gitlab CI pipeline.
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.
During the test
stage, two CI jobs will be executed in parallel for
python 3.7 and 3.9 (the envs declared in tox.ini
).
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).
Implementation details
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).