Jenkins is neat if you use a shared repo. Yes, the functions are weird (a file is a function, and the function inside is named call.), but having a default list of *Pipeline.Jenksfile (ingestionPipeline, modelPipeline, parserPipeline, dataProductPipeline, etc - data engineer here) is so nice. You can also specify which branch of that repo you are running as well!
It’s less neat if you previously had to migrate off of a Jenkins that had everything running as root, to a Jenkins that doesn’t.
At least if you fix a bug for a function that’s used in multiple pipelines, it’s fixed everywhere. Or if you fix a bug in a single pipeline, it’s fixed for multiple repos.
edit: the Groovy language isn’t great though. Not being able to pass kwargs in my own order, unclear how to define the pipeline (somewhat lacking docs, grabbing working examples from SO). I wish something like Python would’ve been used instead.
Jenkins is neat if you use a shared repo. Yes, the functions are weird (a file is a function, and the function inside is named
call
.), but having a default list of*Pipeline.Jenksfile
(ingestionPipeline, modelPipeline, parserPipeline, dataProductPipeline, etc - data engineer here) is so nice. You can also specify which branch of that repo you are running as well!It’s less neat if you previously had to migrate off of a Jenkins that had everything running as root, to a Jenkins that doesn’t.
At least if you fix a bug for a function that’s used in multiple pipelines, it’s fixed everywhere. Or if you fix a bug in a single pipeline, it’s fixed for multiple repos.
edit: the Groovy language isn’t great though. Not being able to pass kwargs in my own order, unclear how to define the pipeline (somewhat lacking docs, grabbing working examples from SO). I wish something like Python would’ve been used instead.