+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 <brit...@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-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to