@nekron: thanks for summary. Few small remarks regarding pros:
Pros:
Docker-based CI guarantees clean builds
I am not sure in which case OBS builds are not clean. Maybe you could provide an example?
Supports different resources for input and output (Github, Gist, S3 …) of source code and builds
In practice, OBS provides _service
facility that allows you to pull sources from git and other systems. Thus, we don’t upload source, but it is made on request from source repository.
CI scripts can be hosted inside the git repo (one source of truth also for the source code as you don’t need to clone a local copy into OBS)
As explained above, OBS solution ends up doing the same if you use _service
. Almost all packages I have seen use such automatic upload. Notable exception are droid packages required for ports.
Build process for independant RPMs can be parallized if there are multiple worker nodes
This is automatically done by OBS
Pipelines allow dependencies, i.e. some staging job like a testcase fails so the complete pipeline will stop
Same can be done with OBS by refusing to compose RPM if the tests fail. In this case, all dependent packages will be either using older version (if such exists) or not compiled due to inability to resolve dependency.