I have been using Hudson/Jenkins for a few years now. I manage roughly 350 
Maven artifacts and probably double that number of jobs.

To help with Maven releases I wish to automate the sequence of jobs that 
are to be executed and also test those jobs in a sandboxed env prior to 
release (so as not to disturb regular development). This requires 
programmatically creating and executing jobs.

My problem is that when I create a job by submitting a config.xml, Jenkins 
ignores the <buildWrappers> section of the config.xml. This results in the 
"Maven release build" checkbox being unchecked in the interface, no 
"Perform Maven Release" button, and of course no ability to 
programmatically kick off a release. I can take the XML from an existing 
job that has this checkbox checked and submit it and the result is the same 
- no Maven release build. Jenkins just ignores an entire block of XML.

I examined the post that the configuration interface performs when a user 
checks this box and it appears to send every configuration value to the 
server in key/value pairs plus sending duplicate information as a JSON 
string (very odd but whatever). The parameter that sets the checkbox is 
org-jvnet-hudson-plugins-m2release-M2ReleaseBuildWrapper=on. I have tried 
sending subsets of values that I wish to edit but get an error telling me 
that it expects a post request (yes, I am posting). I assume that is just a 
catch-all error message that has nothing to do with get/post, but again, 
whatever.

I really don't want to have to reverse engineer this huge request (and 
build out the entire JSON string) just to be able to send a single boolean 
value to enable the release build. Is there a better way to create a Maven 
job with the "Maven release build" checkbox enabled?

Any suggestions would be appreciated.

Reply via email to