RFC: jenkins pipeline

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Max msuraev at sysmocom.de
Fri Mar 3 18:27:16 UTC 2017


Hi.

Right now we have rather sophisticated CI/CD setup which is spread over 
several services (OBS for nightly packages, jenkins for CI) and 
repositories.

It works well, but if I've got to somehow extend/alter it than I have to 
look in at least 3 different places:
- ocmo-ci repo for common scripts
- jenkins job in jenkins web ui
- project's jenkins*.sh scripts

I think it's not meant to be that way, it's just what has grown 
organically over the years.

Right now we use recent enough jenkins which support Pipelines [1] 
plugin. The basic idea behind it is that each project has Jenkinsfile 
[2] in the repository which is self-contained configuration for CI.

In theory enabling this plugin should not affect existing jobs as it's 
entirely separate job type.

I suggest following:
- enable Pipelines plugin in jenkins
- configure new pipelines-based job pointing to non-master branch which 
we can use as a playground
- once we comfortable with it - migrate existing CI (and possibly CD) to 
pipelines (as time permit)
- switch gerrit from old jobs to new pipelines

What do you think?

Details are available via links below but here are some quick takeaways 
which motivated me to write this email:

- we'll have actual CI job description under version control (right now 
it just sits in web ui)
- we'll have single place to look for CI-related things (ok, maybe 2 
places if we still need common library)
- it's more eye-candy (it's clear which build step we're in and how long 
each step took)
- it's easier to parallelize (e. g. run sanitizer and regular builds in 
parallel)

On a related note: in general, who's point of contact for things like 
"please update jenkins plugin X to version Y"?

[1] https://jenkins.io/doc/book/pipeline/
[2] https://jenkins.io/doc/book/pipeline/jenkinsfile/

-- 
Max Suraev <msuraev at sysmocom.de> http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Alt-Moabit 93
* 10559 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Director: Harald Welte




More information about the OpenBSC mailing list