That somehow may depend on what you are evaluating – but it is dynamic on
job save, so if you update the parameters the job is updated.
e.g. my template has
“checkstyle” in the template is a checkbox.
--snip --
<reporters>
<hudson.plugins.checkstyle.CheckStyleReporter>
<% if (checkstyle) { %>
<thresholds>
<unstableTotalAll>0</unstableTotalAll>
</thresholds>
<% } // end if (checkstyle) %>
</hudson.plugins.checkstyle.CheckStyleReporter>
-- snip –
Or – where I have an option for maven parallel building (-Txxx)
<goals>-e ${parallelBuilds} -Dmaven.test.failure.ignore=false test
checkstyle:checkstyle pmd:pmd findbugs:findbugs</goals>
And as it was added at the start of the template I have a default value
<%
/*
* New parameters may be null so set a suitable default.
*/
if (parallelBuilds == null) {
parallelBuilds = "";
}
%>
Other places – where I need it just cope with the fact the value hasn’t
been set (but this is partly due to the fact that I create template jobs
inside a template folder J - and then force the user update the config by
disabling the jobs until they have entered the required info)
<mavenName>${maven_version == null ? "" :
maven_version.getName()}</mavenName>
I suggest you raise a support call with cloudbees or provide the template
and full transform and error, this is no longer a Jenkins issue and doesn’t
really belong on this list.
/James
On Wednesday, 22 May 2013 13:53:10 UTC+1, Bob Bick wrote:
>
> I tried someAttribute and it did not work either.
>
>
>
> The Groovy code is executed prior to the user entering the template
> attributes. This makes using Groovy code not very useful since it can’t be
> dynamic.
>
>
>
> Bob
>
>
>
> *From:* teilo [mailto:[email protected] <javascript:>]
> *Sent:* Tuesday, May 21, 2013 5:39 PM
> *To:* [email protected] <javascript:>
> *Cc:* 'teilo'; Bob Bick
> *Subject:* Re: Mass Jenkins job updates
>
>
>
> its just someAttribute not $someAttribute (although my groovy isn't the
> best and $someAttribute could also be correct syntax :/ )
>
>
>
> You need to make sure that the template creates valid XML that represents
> a job that is known to Jenkins.
>
> Might be best to start by loading a an existing job and then adding a
> single parameter and then changing the groovy transform.
>
>
>
> If not the error you get back although cryptic and in martian does give
> you somewhat of a clue as where to look.
>
>
>
> I wanted to open source our templates, but I have more urgent things
> blocked in the approval queue so I have not pursued it.
>
>
>
> Maybe someone with karma could allow read access to the Jenkins templates
> at https://jenkins.ci.cloudbees.com/template/ unless they contain secret
> info?
>
>
>
>
>
> /James
>
> On Tuesday, 21 May 2013 16:32:35 UTC+1, Bob Bick wrote:
>
> Thanks James.
>
>
>
> I am trying out the CloudBees template approach using Groovy template
> transformations.
>
>
>
> Overall, it seems nice; however, it is not clear how to access attributes
> in Groovy code. The CloudBees doc shows this trivial example of adding
> Groovy code:
>
>
>
> <foo>
>
> <%
>
> for (int i=0; i<100; i++) {
>
> if ((i%2)==0) {
>
> %>
>
> <data>${i}</data>
>
> <%
>
> }
>
> }
>
> %>
>
> </foo>
>
>
>
> I’d like to use an attribute whose value is provided by the user when the
> job is instantiated. Here is a simplified example of what I am trying to do:
>
> <foo>
>
> <%
>
> def x = “a” + $someAttribute
>
> %>
>
> <data>${x}</data>
>
> </foo>
>
>
>
> Unfortunately, the above example does not work. Does anyone know if it is
> possible to access attribute values in the Groovy template code?
>
>
>
> Thanks in advance.
>
>
>
> Bob
>
>
>
>
>
>
>
>
>
> *From:* teilo [mailto:[email protected]]
> *Sent:* Tuesday, May 21, 2013 9:11 AM
> *To:* [email protected]
> *Cc:* 'teilo'; Bob Bick
> *Subject:* Re: Mass Jenkins job updates
>
>
>
> You can add new parameters, so long as you handle the fact that the
> parameter may be null in the transformer used by the template.
>
>
>
> There's a bit about this in my presentation from the Jenkins User event in
> London, and the online docs from cloudbees should give you more details of
> this.
>
>
>
> Others have pointed out there may be other ways to solve the same issue
> with various advantages/disadvantages.
>
> On Tuesday, 21 May 2013 14:04:55 UTC+1, Bob Bick wrote:
>
> Thanks James, that clears it up!
>
>
>
> I guess a template could not add a new parameter. Is that correct? Or,
> maybe there is a way to define a default value that all jobs would get?
>
>
>
> Bob
>
>
>
> *From:* teilo [mailto:[email protected]]
> *Sent:* Tuesday, May 21, 2013 8:59 AM
> *To:* [email protected]
> *Cc:* Bob Bick
> *Subject:* Re: Mass Jenkins job updates
>
>
>
> Hi Bob,
>
>
>
> "Just so I understand what you are saying... If you create a job based
> on a template, and then you make a change to the template, all jobs are
> automatically updated based on the template?"
>
>
>
> Yes - if your jobs are based on that template then they are all
> automatically updated.
>
>
>
> "I have not tried this; however, I would assume that you'd need to
> modify the template and then re-run the transformation with the exact same
> parameters to re-create each job. "
>
>
>
> That's not how the plugin works - when you create a job you no longer
> create a "FreeStyle" job or a "Maven2" job, you create a "Mytemplate" job.
> The only thing the job will ask you for is the parameters defeined by the
> template, and these are stored in the job. The template then converts
> these parameters using the definition stored in the template.
>
>
>
> "If so, that seems like a hassle because you'd need to re-run the
> transformation for many jobs which would be inefficient. "
>
> That would be ineficient - which is why it doesn;t work like that.
>
>
>
>
>
> Basically, if your job has been created from a template then once you
> update the template then the job is automatically updated.
>
>
>
> However your jobs are not created from a tempalte, so you would first have
> to create a template and then convert (recreate?) your jobs to be based on
> the template.
>
>
>
> /James
>
> On Tuesday, 21 May 2013 13:52:19 UTC+1, Bob Bick wrote:
>
> Thank you for the response.
>
> Just so I understand what you are saying... If you create a job based on a
> template, and then you make a change to the template, all jobs are
> automatically updated based on the template? I have not tried this;
> however, I would assume that you'd need to modify the template and then
> re-run the transformation with the exact same parameters to re-create each
> job. If so, that seems like a hassle because you'd need to re-run the
> transformation for many jobs which would be inefficient.
>
> Do I understand that correctly?
>
> Thanks,
>
> Bob
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On
> Behalf Of teilo
> Sent: Tuesday, May 21, 2013 4:03 AM
> To: [email protected]
> Subject: Mass Jenkins job updates
>
> I use option 4 - Jenkins enterprise
>
> This won't be a drop in solution for you as your jobs need to be
> templatized before you can update them by just tweaking the template. You
> could do this with some groovy but that has drawbacks if you mess up your
> groovy.
>
> But Jenkins enterprise has other benefits (at least to me) that the
> initial pain of moving jobs too templates was worth it.
>
> Configuration slicing didn't do it to me, groovy can be an issue if you
> only have a subset of your jobs share the same config - as you have to
> maintain a whitelist/blacklist.
>
> The other option is wget and some sed/perl/... scripting
>
> --
> 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].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>
> *** *** ***
> This message contains information which may be confidential and
> privileged. Unless you are the addressee (or authorized to receive for the
> addressee), you may not use, copy or disclose to anyone the message or any
> information contained in the message. If you have received the message in
> error, please advise the sender by reply e-mail and delete the message.
>
>
> *** *** ***
> This message contains information which may be confidential and
> privileged. Unless you are the addressee (or authorized to receive for the
> addressee), you may not use, copy or disclose to anyone the message or any
> information contained in the message. If you have received the message in
> error, please advise the sender by reply e-mail and delete the message.
>
>
> *** *** ***
> This message contains information which may be confidential and
> privileged. Unless you are the addressee (or authorized to receive for the
> addressee), you may not use, copy or disclose to anyone the message or any
> information contained in the message. If you have received the message in
> error, please advise the sender by reply e-mail and delete the message.
>
>
> *** *** ***
> This message contains information which may be confidential and
> privileged. Unless you are the addressee (or authorized to receive for the
> addressee), you may not use, copy or disclose to anyone the message or any
> information contained in the message. If you have received the message in
> error, please advise the sender by reply e-mail and delete the message.
>
--
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].
For more options, visit https://groups.google.com/groups/opt_out.