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(a)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