ghale / gradle-jenkins-plugin

Gradle plugin to programmatically configure Jenkins jobs.
123 stars 42 forks source link

Update jenkins job-dsl-plugin to 1.46 #80

Closed philbert closed 7 years ago

philbert commented 8 years ago

I really don't know if this pull request is worth much because of the issues mentioned previously, but here it is anyway.

The build and tests seem to pass with these changes after updating to jenkins-dsl-plugin 1.46 which is the latest at the time of writing.

I'm really interested to get this working with jenkins 2 but I'm still trying to figure out how to use my locally-built plugin in my builds for testing.

I tried to run the integration tests against jenkins 2 but they simply hang at jenkins.install.SetupWizard <init> which is not surprising given how much has change in the "out of the box" experience on a fresh jenkins 2 install.

Now I understand how much work there is to get this plugin up to date. If I can at least prove what I am attempting to show, then I think it's quite likely that I can find sponsorship within the organisation where I'm currently working to help maintain this plugin - It's a large organisation with a lot of developers and a dedicated tools team.

If that is of interest to help keep the project alive then please speak up, otherwise we may look into forking the project, or switch to an alternative like jenkins job builder.

ghale commented 8 years ago

Hey @philbert, I would definitely welcome some help maintaining this plugin. I'd even be open to letting someone else drive it and potentially take over if there is appetite for that. My biggest challenge is time. I no longer work with Jenkins on a regular basis, so any work I do is on my own time, which is even more limited than usual these days. I feel pretty bad about not being a better open source project owner, so it would be nice if there were some folks more actively working on it than myself.

Having said that, I'll take an in depth look at this and try to get it merged/published in the next week.

philbert commented 8 years ago

Thanks @ghale. Since I managed to get the plugin updated and working for my own builds so that I can demo what I need to, I now have a pretty good case to put forward to my customer either for committing resources to get the plugin up to date with jenkins 2, or alternatively taking on ownership of the project from you.

It's actually due to this work that I'm really happy with the direction of Jenkins 2, so I'm in the process for my own purposes to see how well it works with docker. If that works as well as I hope, I could see a possibility that I might consider taking on the ownership of the plugin myself.

I'll get back to you with any more information forthcoming. Let me know if there is anything you'd like me to fix in the pull request.

cnh57811 commented 8 years ago

Hi @philbert, I'm trying to get your 1.3.3 version of the jenkins-gradle-plugin pulled down, built, and working in a local environment. The plugin builds successfully. I include the resulting jar in my local project and receive java.lang.NoClassDefFoundError: com/terrafolio/gradle/plugins/jenkins/jobdsl/MapJobManagement. Did you run into this when attempting to use the locally built plugin within your project? Any ideas on how to get around this? Any advice is appreciated. Thanks!

Edit: Also, I did verify that the MapJobManagement.class file is, in fact, in the jar...

Update: Nevermind @philbert, I just needed to pull in all of the required dependencies.

philbert commented 8 years ago

Hi @ghale, I'm getting some integration test failures in my build now which I'm hoping is something to do with the coporate network I'm currently on, because building the master branch is failing for me as well. I'll have to retest this when I'm home, but maybe you have everything under control now?

philbert commented 8 years ago

Hi @cnh57811, sorry I thought you were Gary :)

Yeah when you use the plugin you will probably need to have some ugly stuff like this in your buildscript:

buildscript {
  repositories {
    jcenter()
    maven {
      url "https://plugins.gradle.org/m2/"
    }
    maven {
      url "http://maven.jenkins-ci.org:8081/content/repositories/releases/"
    }
    flatDir name: 'libs', dirs: "../plugins/gradle-jenkins-plugin/build/libs"
  }
  dependencies {
    classpath "com.terrafolio:gradle-jenkins-plugin:1.3.3"
    classpath "org.jenkins-ci.plugins:job-dsl-core:1.46"
    classpath "com.google.guava:guava:19.0"
    classpath 'org.codehaus.groovy.modules.http-builder:http-builder:0.7.2'
  }
}

Did you get it all sorted now?

cnh57811 commented 8 years ago

Yes, thanks @philbert !

qliklars commented 7 years ago

Hi @ghale. Any plans to release 1.33 ? We are using this plugin to transition into using Jenkinsfile builds, but unfortunately the non-working cpsScm makes it harder.

philbert commented 7 years ago

@qliklars did you try building the plugin from my branch?

qliklars commented 7 years ago

No, but I will try if an "official" release is not planned

ghale commented 7 years ago

Thanks for the PR - I've merged this work separately and further updated to job-dsl-core 1.53. Sorry for the long delay.