Add support for "tox" builder
This builder uses the ShiningPanda plugin. It is implemented as a "tox" builder independent of the "shining-panda" one since the latter defines "common" arguments (such as `nature` or `command`) that do not apply to this tox builder. Change-Id: I99c1fdad392d41deb9c8fdd5c3617bb10860ac39
This commit is contained in:
parent
440cc0d12f
commit
2de4ba8a81
|
@ -1964,6 +1964,32 @@ def shining_panda(parser, xml_parent, data):
|
||||||
XML.SubElement(t, 'ignoreExitCode').text = str(ignore_exit_code).lower()
|
XML.SubElement(t, 'ignoreExitCode').text = str(ignore_exit_code).lower()
|
||||||
|
|
||||||
|
|
||||||
|
def tox(parser, xml_parent, data):
|
||||||
|
"""yaml: tox
|
||||||
|
Use tox to build a multi-configuration project. Requires the Jenkins
|
||||||
|
:jenkins-wiki:`ShiningPanda plugin <ShiningPanda+Plugin>`.
|
||||||
|
|
||||||
|
:arg str ini: The TOX configuration file path (default: tox.ini)
|
||||||
|
:arg bool recreate: If true, create a new environment each time (default:
|
||||||
|
false)
|
||||||
|
:arg str toxenv-pattern: The pattern used to build the TOXENV environment
|
||||||
|
variable. (optional)
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. literalinclude:: /../../tests/builders/fixtures/tox001.yaml
|
||||||
|
:language: yaml
|
||||||
|
"""
|
||||||
|
pluginelement = 'jenkins.plugins.shiningpanda.builders.ToxBuilder'
|
||||||
|
t = XML.SubElement(xml_parent, pluginelement)
|
||||||
|
XML.SubElement(t, 'toxIni').text = data.get('ini', 'tox.ini')
|
||||||
|
XML.SubElement(t, 'recreate').text = str(
|
||||||
|
data.get('recreate', False)).lower()
|
||||||
|
pattern = data.get('toxenv-pattern')
|
||||||
|
if pattern:
|
||||||
|
XML.SubElement(t, 'toxenvPattern').text = pattern
|
||||||
|
|
||||||
|
|
||||||
def managed_script(parser, xml_parent, data):
|
def managed_script(parser, xml_parent, data):
|
||||||
"""yaml: managed-script
|
"""yaml: managed-script
|
||||||
This step allows to reference and execute a centrally managed
|
This step allows to reference and execute a centrally managed
|
||||||
|
|
|
@ -86,6 +86,7 @@ jenkins_jobs.builders =
|
||||||
sonatype-clm=jenkins_jobs.modules.builders:sonatype_clm
|
sonatype-clm=jenkins_jobs.modules.builders:sonatype_clm
|
||||||
ssh-builder=jenkins_jobs.modules.builders:ssh_builder
|
ssh-builder=jenkins_jobs.modules.builders:ssh_builder
|
||||||
system-groovy=jenkins_jobs.modules.builders:system_groovy
|
system-groovy=jenkins_jobs.modules.builders:system_groovy
|
||||||
|
tox=jenkins_jobs.modules.builders:tox
|
||||||
trigger-builds=jenkins_jobs.modules.builders:trigger_builds
|
trigger-builds=jenkins_jobs.modules.builders:trigger_builds
|
||||||
trigger-remote=jenkins_jobs.modules.builders:trigger_remote
|
trigger-remote=jenkins_jobs.modules.builders:trigger_remote
|
||||||
jenkins_jobs.reporters =
|
jenkins_jobs.reporters =
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<project>
|
||||||
|
<builders>
|
||||||
|
<jenkins.plugins.shiningpanda.builders.ToxBuilder>
|
||||||
|
<toxIni>tox.ini</toxIni>
|
||||||
|
<recreate>true</recreate>
|
||||||
|
</jenkins.plugins.shiningpanda.builders.ToxBuilder>
|
||||||
|
</builders>
|
||||||
|
</project>
|
|
@ -0,0 +1,3 @@
|
||||||
|
builders:
|
||||||
|
- tox:
|
||||||
|
recreate: True
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<project>
|
||||||
|
<builders>
|
||||||
|
<jenkins.plugins.shiningpanda.builders.ToxBuilder>
|
||||||
|
<toxIni>foo.conf</toxIni>
|
||||||
|
<recreate>false</recreate>
|
||||||
|
<toxenvPattern>TOX_ENV</toxenvPattern>
|
||||||
|
</jenkins.plugins.shiningpanda.builders.ToxBuilder>
|
||||||
|
</builders>
|
||||||
|
</project>
|
|
@ -0,0 +1,5 @@
|
||||||
|
builders:
|
||||||
|
- tox:
|
||||||
|
ini: "foo.conf"
|
||||||
|
toxenv-pattern: TOX_ENV
|
||||||
|
|
Loading…
Reference in New Issue