Implements: Archive publisher allow-empty setting.

The archive publisher did not allow setting the allowEmptyArchive setting in the YAML.
This change adds configuring the setting if it is defined in the YAML file. If the value
is 'true' then it is set, else it is 'false'. The default Jenkins behavior is 'false' disallowing
builds to pass without storing the archived data.

Updated the doc string to add that there is a default value (false) which is also the default Jenkins behavior.
Cleand up the value assignment, and typed it to a str().

fixed pep8 violation

Addresses patchset 3 request to update the doc string to use the test directly.
Would like to have more discussion around the second point in patchset 3 around having
the new code add a line of XML.

Change-Id: I5e0c9ed7e8ea669a8d0e8f267ebb02d5f0b6ae73
Merge "Implements: Archive publisher allow-empty setting."
Add support to specify GitLab version.

Change-Id: Iae3746540cb692b19278fd0bedae48bf976700d5
Add support for parameters in pipeline publisher.

Change-Id: Ie36d7c6a9daab17adf93586f79b92be0ed267c35
Merge "Add support for parameters in pipeline publisher."
 Explain howto use maven's pre/postbuilders

They're configured like the other builders but one needed to check the
source to verify this until now.

Change-Id: I97400ad9c7cb0dfb89fe2757c4bedce639e7ea24
maven-deploy: don't require id

The id element is eg. not needed for file deployment so don't make it
mandatory.

Change-Id: Ide83b18cbab6010033c3bd8e8264595d1d2d5fa2
Merge " Explain howto use maven's pre/postbuilders"
Merge "maven-deploy: don't require id"
Fix references to examples in api documentation

The documentation displayed references to examples in the main docs but not in
the corresponding api reference docs.  The build had these warnings..

: WARNING: Include file u'/Users/khaido/workspace/jenkins-job-builder/doc/source/api/
../../tests/properties/fixtures/batch-task.yaml' not found or reading it failed

As pointed out by Darragh[1] the problem was that literalinclude needs a leading '/' to
correctly reference both docs.

[1] https://review.openstack.org/#/c/48783/15/jenkins_jobs/local_yaml.py

Change-Id: Ib1f8ccca40af1ee54c2bd00b2b42ba39e3c0c8e5
Fix multibyte character problem

Fixed problem that causes a UnicodeEncodeError when use multi-byte characters in the job.yml.

Change-Id: Ie715c827a794e73fae11cdca079ea80cfb8c280d
Add local-branch option

Change-Id: I5883992afc0875e2f464ff3f576b067f7d5b4ce8
make job creation consistent

Defining a project (in yaml) without setting any other parameters should
generate a basic jenkins job (in xml).  While this works for freestyle jobs,
jjb will throw an error for maven and flow projects.  The behavior should be
consistent across all types of projects.  This patch just makes it so
that the behavior is consistent.

Change-Id: If7b749dae7631e8714a9416dfbd82d2443c0302c
tests: Allow to test project parameters

So far it wasn't possible to test the prameters of the
project itself. While If7b749dae7631e8714a9416dfbd82d2443c0302c
already made the job creation consistent this goes one step further
and creates the root_xml using the project's root_xml method.

Change-Id: Ieba4203d3d23ad68df5a1246e90ea8c03ddd54d4
project_maven: Don't require artifact-id and group-id

Jenkins will determine the values from the pom automatically so there's
no need to require them.

Change-Id: Ic1c9c26a05e335fd78a92fe4316ecc88b3f209b9
Add support for credentials-id in git repositories.

Original change by Soren Hansen <Soren.Hansen@ril.com>

Change-Id: I2ad6d5b7d8a5cc89596c41463dc7906780b61515
Added rbenv wrapper

Change-Id: Iefab7b71b96998789a66b3e1ea03f28fbfc38391
Merge "Added rbenv wrapper"
Add support for Test Stability with Junit

Adds test-stability option to junit test result
publisher, requires Test stability plugin to be installed.

https://wiki.jenkins-ci.org/display/JENKINS/Test+stability+plugin

Change-Id: Idd7ef1bdeaf9e6fd8881bab5729950dc717ce9f3
Add tests for YamlParser and patch 2.6 minidom

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
python 2.7.5.

Removed the now obsolete regex that was reformatting the output on
python 2.6.

Change-Id: I26c100b6adfbcb9b197bb06cd162855adaaf24c5