Declarative pipeline: access JenkinsLocationConfiguration.getAdminAddress()?

134 views
Skip to first unread message

Jon Dufresne

unread,
Mar 20, 2017, 5:28:12 PM3/20/17
to jenkins...@googlegroups.com
Hi,

I have several multibranch pipeline jobs that all use a declarative pipeline. The Jenkinsfiles contain the following snippet:

post {
    failure {
      step([$class: 'Mailer', recipients: 'c...@example.com', sendToIndividuals: true])
    }
  }

I would like to avoid hard coding the address "c...@example.com" in all Jenkinsfiles. It is repetitive and is also incorrect when testing on a staging server or in a VM.

It occurred to me that one option could be to send to the address "JenkinsLocationConfiguration.getAdminAddress()" [0], as this is configured correctly in all scenarios listed above.

Is there an easy way to access this value from a Jenkinsfile? Is it available as some local or environment variable? A normal groovy import and method call didn't work and instead raised an exception.

If there is a better way to configure this globally, I'd consider that as well.

Cheers,
Jon

[0] http://javadoc.jenkins.io/jenkins/model/JenkinsLocationConfiguration.html#getAdminAddress()

Cuong Tran

unread,
Mar 21, 2017, 10:42:18 PM3/21/17
to Jenkins Users
You can access it via:

hudson.model.JenkinsLocationConfiguration.get().getAdminAddress()

You could also define a global variable on Jenkins and access it as "env.JENKINS_EMAIL".

To take it a step further, you can encapsulate the whole thing in a library using Global Shared Library plugin:

Jon Dufresne

unread,
Mar 23, 2017, 7:37:37 PM3/23/17
to jenkins...@googlegroups.com
Hi,

Thanks for the response. I gave this a shot. It results in the following error:

groovy.lang.MissingPropertyException: No such property: hudson for class: groovy.lang.Binding
But I think the fix is to change hudson to jenkins. So I tried this and get the following results:
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use staticMethod jenkins.model.JenkinsLocationConfiguration get

So I think they is still something missing. Not sure how best to proceed. Is it not so common to access the default admin email address in a Jenkinsfiles?

--
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 jenkinsci-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/2014b1d4-e910-4f06-b26f-8bbb5a56b92e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Baptiste Mathus

unread,
Mar 28, 2017, 5:13:25 PM3/28/17
to jenkins...@googlegroups.com
I don't think it is common indeed, or at least I don't remember anything about it. You could file an issue in the tracker about it, and possibly see to propose a PR, that shouldn't be too involved I guess. It's likely to be more a matter of choosing wisely where/if to make it available.

Reply all
Reply to author
Forward
0 new messages