The Gitlab Python Runner
This project was created to support use of gitlab on systems that cannot support Golang (the official gitlab-runner is written in Go) or that adding OS-specific support to the gitlab-runner project is difficult or unlikely for any number of reasons.
It allows you to run a gitlab CI build using a system that is not fully supported officially by gitlab.
Originally, if your system did not support golang you could use the
ssh executor of the official runner. This works well for many cases but does not support artifacts.
gitlab-python-runner works on any UNIX system that can run python 2.7 or 3.6 and fully supports artifact uploads and dependencies.
What platforms does
Any windows or unix-like system that can run python 2.7 and python 3.6 and supports the python modules we use (see setup.py) As of right now it is supported and tested on:
- Solaris 11 AMD64
- Linux x86_64
- Windows 10 / 2019 (including docker executor)
It is intended to work on (bug reports encouraged):
- Solaris 11 SPARC
- AIX 7+
- MacOS X
- PowerPC based Linux
It is expected to work on (guesswork)
- OpenBSD, NetBSD
How does this differ from the official runner?
The python runner is of course written in a different language and only supports a general subset of the gitlab-ci YAML format.
The first difference to note is that with the official runner, the
script sections are executed as one, and the
after_script is executed as a new process.
gitlab-python-runner executes these three scripts as one big script.
The python runner only checks to see if a job has been aborted when it is attempting to push build log output (trace) to the gitlab server. If your build is relatively quiet, it may take a long time to abort a job.
Not all features of gitlab are supported
At time of writing we do not (yet) support:
- JUnit Results (This is planned)