Hi Luca,

Have you had a chance to publish this to github?

On Friday, August 18, 2017 at 2:17:00 AM UTC-7, Luca Milanesio wrote:
>
> Posting to the jenkinsci-users mailing list as well: even if I mainly 
> needed feedback from the plugins developers, feedback from a 
> user-perspective of the new plugin would be *really appreciated* as well :-)
>
> -- See below the original post --
>
> Hi Gerrit and Jenkins Community,
> after over two years of iterations and improvements of the Gerrit CI 
> workflow (https://gerrit-ci.gerritforge.com), I have decided that is 
> about time to extract the logic of our workflow and make it available as a 
> brand-new Jenkins plugin!
>
> *Why?*
> I wanted to use the Gerrit CI validation workflow with potentially any 
> project, including Gerrit plugins or anybody else wanting to adopt it.
> I could just "copy & paste" our Groovy workflow, however, that does not 
> seem a sensible and long-term approach.
> I wanted to have "something more" than a pure triggering mechanism: I 
> wanted to extend the power of Jenkisfile with the Gerrit review workflow 
> verbs.
>
> *Why not?*
> Why should I write yet another Gerrit/Jenkins plugin? Isn't Gerrit Trigger 
> Plugin (https://wiki.jenkins.io/display/JENKINS/Gerrit+Trigger) enough?
> We couldn't use it against gerrit-review.googlesource.com because stream 
> events are just not accessible.
>
> There are unresolved issues about:
> - Stability: stream-events are based on SSH, which isn't scalable, 
> reliable against downtime, etc.
> - Usability: at every JenkinsWorld conference people still come to me 
> asking "how do I setup correct the Gerrit Trigger plugin"?
> - Integration: using it inside a JenkinsFile isn't that straightforward 
> and multi-branch projects aren't supported either
>
> *What would it be?*
> I will publish a new plugin named "Gerrit Pipeline Plugin."
> The new name indicates:
> - Deep integration with Jenkins Pipeline
> - Out-of-the-box integration with Gerrit validation workflow in the 
> pipeline
>
> A simple example scripted Jenkinsfile would be:
>
> node {
>     checkout scm
>
>     gerrit.withServer("http://gerrit:8080/";, "gerrit") {
>
>         try {
>             docker.image('gerritforge/play-sbt-8-jdk-alpine').inside {
>                 stage('Build') {
>                     sh 'sbt compile'
>                 }
>                 stage('Test') {
>                     sh 'sbt 'test'
>                 }
>             }
>
>             gerrit.review("Verified", 1, "It works !")
>         } catch (e) {
>             gerrit.review("Verified", -1, "Breaks the build ;-(")
>             throw e
>         }
>     }
> }
>
> (Where:
> - https://gerrit-review.example.com would be the Gerrit URL
> - mycredentialsid would be the id of the credentials to access Gerrit)
>
> One key-aspect will be: stateless, configuration-less (apart from the 
> credentials stored in Jenkins keychain)
> That means that multiple Jobs, multiple branches of the same Job, can have 
> their own Gerrit integration defined and working out-of-the-box.
>
> No more people asking "how do I configure the Gerrit integration"?
> You'll just define a gerrit.withServer() { } and ... it will just work.
>
> *When?*
> I am planning to showcase the first prototype of the new plugin at the 
> Jenkins World Conference in San Francisco inside my "Data-Driven Pipeline 
> workshop."
> (
> https://jenkinsworld20162017.sched.com/event/APTd/data-driven-pipeline-workshop-free
> )
> Shortly afterward, I will publish the plugin on the GerritForge's GitHub 
> account and will start the integration process into the Jenkins CI 
> organization.
>
> *Next steps?*
> A second iteration of the plugin would have a Declarative pipeline 
> equivalent as well, which would require even less code required.
> A third iteration of the plugin would support BlueOcean as well, to have a 
> fully UX-integrated experience.
> The goal is to have *Gerrit Code Review to be a 1st class citizen in the 
> Jenkins ecosystem* :-)
>
> *So what happens to the Gerrit Trigger Plugin?*
> The new plugin is not going to replace the current Gerrit Trigger Plugin, 
> but would rather represent an alternative to simpler scenarios when you 
> just require a standard Jenkinsfile Gerrit validation workflow. For all the 
> current users of the Gerrit Trigger Plugin things wouldn't change, unless 
> they need a more Jenkisfile-integrated experience.
>
> Feedback? Like it? Hate it? Have your say :-)
>
> Luca.
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/2c459ab4-cc59-42b4-a02d-92a1069a56fa%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to