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.
