Well, now I don't know why my script isn't working. I had to modify it to
remove the version numbers, just to get the thing to work. The blog,
https://qiita.com/aespinosa/items/5d791310f0cb436eb71f works if I copy and
paste their example,
import jenkins.model.Jenkins;
pm = Jenkins.instance.pluginManager
uc = Jenkins.instance.updateCenter
pm.plugins.each { plugin ->
plugin.disable()
}
deployed = false
def activatePlugin(plugin) {
if (! plugin.isEnabled()) {
plugin.enable()
deployed = true
}
plugin.getDependencies().each {
activatePlugin(pm.getPlugin(it.shortName))
}
}
["git", "workflow-aggregator", "github-oauth", "job-dsl",
"extended-read-permission"].each {
if (! pm.getPlugin(it)) {
deployment = uc.getPlugin(it).deploy(true)
deployment.get()
}
activatePlugin(pm.getPlugin(it))
}
if (deployed) {
Jenkins.instance.restart()
}
but as soon as I add my own Array, I get a nullpointerexception saying that
it can't call deploy() with null objects.
import jenkins.model.Jenkins;
pm = Jenkins.instance.pluginManager
uc = Jenkins.instance.updateCenter
pm.plugins.each { plugin ->
plugin.disable()
}
deployed = false
/**
*
*/
def activatePlugin(plugin) {
if (! plugin.isEnabled()) {
plugin.enable()
deployed = true
}
plugin.getDependencies().each {
activatePlugin(pm.getPlugin(it.shortName))
}
}
/** this works.
[
"git",
"workflow-aggregator",
"github-oauth",
"job-dsl",
"extended-read-permission"
].each {
if (! pm.getPlugin(it)) {
deployment = uc.getPlugin(it).deploy(true)
deployment.get()
}
activatePlugin(pm.getPlugin(it))
}
*/
[
"ant",
"build-timeout",
"credentials",
"email-ext",
"github-branch-source:",
"gradle",
"jobConfigHistory",
"ldap",
"matrix-auth",
"antisamy-markup-formatter",
"pam-auth",
"pipeline",
"pipeline-github-lib",
"ssh-slaves",
"subversion",
"timestamper",
"ws-cleanup"
].each {
if (! pm.getPlugin(it)) {
deployment = uc.getPlugin(it).deploy(true)
deployment.get()
}
activatePlugin(pm.getPlugin(it))
}
Currently, it makes no sense. To me those are structured the same, but the
second array doesn't work.
On Tuesday, December 18, 2018 at 3:21:52 PM UTC-6, Phillip Dudley wrote:
>
> What I ended up doing is using what I had previously to setup Jenkins,
> login, and install the Job Configuration History plugin, and got the output
> of the config.xml. For whatever reason, doing the
> http://JENKINSURL:8080/job/NAME/config.xml would just result in a blank
> page, and not actually show the configuration of the GitHub Source Branch
> job.
>
> However, I noticed that the config is tied very specifically to specific
> versions of Plugins. I can install plugins, but if those change, then they
> break my job.
>
> /**
> * activatePlugin activates given plugins.
> * The plugin parameter is a pluginManager object(?)
> *
> * @param plugin [Object]
> *
> * @return nil
> */
> def activatePlugin(plugin) {
> // If our specified plugin isn't enabled, enable it.
> if (! plugin.isEnabled()) {
> plugin.enable()
> // Set our state to true.
> deployed = true
> }
> // Go through each dependency of our plugins, and enable those.
> // Otherwise our plugins wouldn't work even if they're installed.
> plugin.getDependencies().each {
> activatePlugin(pluginManager.getPlugin(it.shortName))
> }
> }
>
> // As of 2018-12-18
> def plugin_list = [
> "ant:1.9",
> "build-timeout:1.19",
> "email-ext:2.63",
> "github-branch-source:2.4.1",
> "gradle:1.29",
> "ldap:1.20",
> "matrix-auth:2.3",
> "antisamy-markup-formatter:1.5",
> "pam-auth:1.4",
> "pipeline:2.6",
> "pipeline-github-lib:1.0",
> "ssh-slaves:1.29.1",
> "subversion:2.12.1",
> "timestamper:1.8.10",
> "ws-cleanup:0.37",
> ]
>
> // Loop through all of the plugins and install/update and activate them.
> plugin_list.each { plugin ->
> // If the plugin isn't being installed, update it.
> if (! pluginManager.getPlugin(plugin)) {
> deployment = updateCenter.getPlugin(plugin).deploy(true)
> deployment.get()
> }
> // Activate the plugin and all of its dependencies.
> activatePlugin(pluginManager.getPlugin(plugin))
> }
>
> However, there is an overloaded method in the updateCenter called
> getPlugin(String name, and VersionNumber version)
>
>
> -
>
> https://javadoc.jenkins.io/hudson/model/UpdateCenter.html#getPlugin-java.lang.String-hudson.util.VersionNumber-
>
> I'm not sure where to find the VersionNumber or how to get that to give to
> this method.
>
> On Friday, December 14, 2018 at 3:46:05 PM UTC-6, Phillip Dudley wrote:
>>
>> Would anyone have any pointers to configuring the GitHub Organization
>> Item/Job with Groovy so that when my Jenkins instance starts up, it reads
>> the
>>
>> $JENKINS_HOME/init.groovy.d/
>>
>> folder and configures a default job to perform GitHub Organization
>> scanning for Jenkinsfiles?
>>
>> I've got most of the other stuff I need such as setting banners,
>> installing plugins, configuring default Jenkins users and assigning them
>> permissions via the matrix-auth plugin. Even finally hooked up to LDAP and
>> I can authenticate. However, I don't seem to find too much on configuring
>> that plugin except through the UI. Most of my Googling returns results for
>> using Jenkinsfiles, or Groovy tutorials, but not actually setting up and
>> configuring that plugin.
>>
>> TL;DR,
>> Looking for a direction to learn how to configure the GitHub Organization
>> job to scan my GitHub Organization for Jenkinsfiles and start performing
>> Jobs.
>>
>
--
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/1b08aba7-53c7-442f-972c-40c36c5d5392%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.