document JJB module execution order

Jenkins executes the JJB modules in a specific order.
It helps users to understand the order when creating
jenkins jobs.

Change-Id: I134ccf927cb387a0d112a8bedb446fe96196eb84
xunit publisher was wrong with multiple types

When using multiple xunit publishers such as:

  publishers:
   - xunit:
	  types:
	   - phpunit:
		  pattern: 'junitphp.xml'
	   - cppunit:
		  pattern: 'cppunit.log'

the publisher was wrapping each framework (phpunit, cppunit in above
example) in its own <types /> which is not at all how the Jenkins plugin
does it.

Instead, this patch creates a single <types /> element and attach all
frameworks to it.

Change-Id: I6822d6355e7ba47546f6e959e3d1a160a059243b
Add an option for the buildChooser

Depending on what plugins are installed, the user may want
to specify a different "chooser strategy" via the buildChooser
field. Add an option for doing so.

Change-Id: Iba59f8c0a8446c88f64ed8b70b3639a89d9b9ef0
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
Tests for publishers

I am trying to build up a very basic testing framework so we can tests
our publishers. The idea is to provide a YAML input file and expected
XML output, run the parser on the YAML file and compares its output with
the fixture XML.

That test suite should speed up development of new publishers.

TestCaseModulePublisher is declared inside a function so that unittest
discovery does not consider it a usable test directly. load_test is
responsible for instantiating the test suite.

Change-Id: If3260113eb1337ac47c3883b11c600e5a595dae3
[fabre.arnaud@gmail.com: fixed some runtime errors]
Signed-off-by: Arnaud Fabre <fabre.arnaud@gmail.com>
Merge "document JJB module execution order"
Merge "xunit publisher was wrong with multiple types"
Tests: Use a testscenarios for running tests.

Instead of using load_tests to build a test suite out of a single
test case, rely on testscenarios. This library aims at running the
same test with different input data (`scenarios').

Some code is moved inside the test case to reduce the number of
scenario parameters (previously fixtures).

Change-Id: Iedb4cb3ad6341a9b397fa305b1ce2b329b6fdc15
Merge "Tests for publishers"
Merge "Tests: Use a testscenarios for running tests."
Add python26 support

Change-Id: I1e4b388135ce73f34ba594943c4ae7e5f2dadeba
Signed-off-by: Paul Belanger <paul.belanger@polybeacon.com>
Add python26 multiline string assertion back.

The assertMultiline equal was removed for assertEqual to be python26
friendly. Testtools has a matcher that provides similar functionality
that is python26 compatible. Use testtools instead of unittest for this
functionality. Remove use of unittest.main().

Change-Id: I348b0ee0192d3164084c20d9356e69f29e1cb86c
TextFinder plugin support added

TextFinder provides an ability to check console output and content
of specified files to ensure build status.

Change-Id: I3907efc658e760d228d76633867031d94cadd6ab
HTML Publisher plugin support added

HTML Publisher provides an ability to publish the html reports
that your build generates to the job and build pages.

Change-Id: I13c3e0a570e717eddf84c61b095e4a32dde4e0af
Adding the Sauce OnDemand Plugin

This change adds support for the sauce ondemand plugin.  Using
this plugin you can actually set everything at the job config
level and not touch the global config.  I did have to put a note
in about how to know what to put for the platform since the
list of platforms is dynamically created by the plugin by
hitting the sauce labs site to get the current list, so I wasn't
able to create a dictionary of what you see in the config and
what the valid values are for the yaml.

Change-Id: I3579111af0b18967cd09f28a5388e6637fa766d5
Merge "Add an option for the buildChooser"
Merge "TextFinder plugin support added"
Merge "HTML Publisher plugin support added"
Merge "Adding the Sauce OnDemand Plugin"
Allow the gitConfigName and gitConfigEmail values to be used.

Change-Id: I3143dd4f0db222c6d0ba3210714707dc00cf93cb
Merge "Add python26 multiline string assertion back."