Test full build job XML produced by the YamlParser object which exposed
differences in how the XML was being written on python 2.6 versus newer
versions of python.
Differences were whitespace only, but made testing and validating the
xml outputted across multiple versions of python difficult.
Code now patches the python 2.6 writexml method on the Element class in
the xml.dom.minidom module, with a version of the method taken from
Removed the now obsolete regex that was reformatting the output on
Switch to using entry points for loading modules as well as
individual buliders, triggers, publishers, etc.
Remove most openstack-specific python code.
Change templating so it's less repetitive -- a single project
definition will suffice for multiple jobs or job-groups.
This outputs XML that is identical to the current production XML,
warts and all. There are significant improvements that can be made
to the YAML in a separate change, as they will cause minor changes
to existing jobs (adding timestamps, logrotate, etc.). These are
mostly marked with TODO in this change.
Approved: James E. Blair <firstname.lastname@example.org>
Reviewed-by: James E. Blair <email@example.com>
This uses a python script with modules for parts of the XML. The parameters for the projects are provided using YAML scripts.
It also includes a Jenkins API module to directly inject jobs into Jenkins without requiring a restart/reload as well as a memory of which jobs have been pushed to Jenkins.
It is currently configured to replace the original Jenkins Jobs in StackForge.
What it won't yet do:
1. Delete jobs (although it isn't far off being able to)
2. check-* jobs (need to modify the trigger_gerrit module to support that)
Documentation to follow
Fixes bug #995599