commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bruno P. Kinoshita" <brunodepau...@yahoo.com.br.INVALID>
Subject Re: [DISCUSS] Jenkins Pipeline DSL
Date Sat, 26 Nov 2016 11:10:57 GMT
+1 for the PoC

We can achieve something similar to what we have in Travis-CI through the Pipeline Plug-in
(née Workflow Plug-in).

Here are some examples of what the Jenkinsfile looks like. In the Jenkinsfile you define,
as Benedikt said, your job configuration with the DSL. It is not very different than writing
a Travis-CI file, and if you have Jenkins installed locally, you can play with the Jenkinsfile
before pushing it.

https://github.com/GoogleCloudPlatform/continuous-deployment-on-kubernetes/blob/master/sample-app/Jenkinsfile

https://github.com/eddumelendez/spring-boot-cache-sample/blob/master/Jenkinsfile


You can ask for user input, and in certain steps of the pipeline, where checkpoints are created,
it is possible to restart jobs from that checkpoint. It may be useful for jobs that take a
long time to run.

These were the pros, there are a few cons too. Like having to learn the DSL; not all plug-ins
are supported to be used within pipelines; and I think it is not as declarative as Travis-CI,
and can get messy. But I still like the idea of using the Pipeline Plug-in. 

Digressing a little bit... the plug-in has a continuation passing style implementation for
the pipelines/checkpoints/context/etc (you can read more about it here [1]). When I read the
cps implementation in Jenkins, I recalled reading something similar in a commons component
[2] Check the Team members of that module too :) I remember adding to my todo-list to check
if Taverna workflows could benefit of continuations, and now Taverna is incubating in ASF.
Might check that out some rainy day.

[1] https://github.com/jenkinsci/workflow-cps-plugin#technical-design


[2] https://commons.apache.org/sandbox/commons-javaflow/

>________________________________
> From: Benedikt Ritter <britter@apache.org>
>To: Commons Developers List <dev@commons.apache.org> 
>Sent: Saturday, 26 November 2016 11:18 PM
>Subject: [DISCUSS] Jenkins Pipeline DSL
> 
>
>Hello,
>
>currently we define our Jenkins job through the Jenkins UI. The problem
>with this is, that there is no connection between the source code and the
>way it is build. The Build job configuration is versioned separately from
>the source code in Jenkins it self.
>
>With the Jenkins Pipeline Plugin [1] it is possible to define Jenkins Jobs
>in the source repository using a (groovy based) Job DSL [2]. So rather than
>clicking through the Jenkins UI, one just writes down what jenkins should
>to and checks it into version control.
>
>The cool part is, that jenkins is than able to recreate the build pipeline
>for every branch. This comes in handy when working with a gitflow like
>development process, where there are several branches being changed.
>
>I'd like to setup a PoC for the Commons Lang project showing, how this
>looks like in real life. The PoC can than be adopted by other components,
>if they wish.
>
>Please let me know if you have objections.
>
>Regards,
>Benedikt
>
>[1] https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Plugin
>[2] https://jenkins.io/solutions/pipeline/
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message