summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-12-03 18:38:37 +0000
committerGerrit Code Review <review@openstack.org>2015-12-03 18:38:37 +0000
commit4b0f03017ae932f183abfed2dff7dcbbaa1ff691 (patch)
tree91bd0633f1fcc44fea2e52ee4bcf41642b1fabcd
parentcb8484cf20705ded1f0ff3fe6fa7e451c3adf795 (diff)
parent2de4ba8a8129365991fcabcc16ca8e91b08ed8e1 (diff)
downloadpython-jenkins-job-builder-4b0f03017ae932f183abfed2dff7dcbbaa1ff691.tar.gz
python-jenkins-job-builder-4b0f03017ae932f183abfed2dff7dcbbaa1ff691.tar.xz
python-jenkins-job-builder-4b0f03017ae932f183abfed2dff7dcbbaa1ff691.zip
Merge "Add support for "tox" builder"
-rw-r--r--jenkins_jobs/modules/builders.py26
-rw-r--r--setup.cfg1
-rw-r--r--tests/builders/fixtures/tox001.xml9
-rw-r--r--tests/builders/fixtures/tox001.yaml3
-rw-r--r--tests/builders/fixtures/tox002.xml10
-rw-r--r--tests/builders/fixtures/tox002.yaml5
6 files changed, 54 insertions, 0 deletions
diff --git a/jenkins_jobs/modules/builders.py b/jenkins_jobs/modules/builders.py
index 5c081ddd..e6f10782 100644
--- a/jenkins_jobs/modules/builders.py
+++ b/jenkins_jobs/modules/builders.py
@@ -1964,6 +1964,32 @@ def shining_panda(parser, xml_parent, data):
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):
"""yaml: managed-script
This step allows to reference and execute a centrally managed
diff --git a/setup.cfg b/setup.cfg
index 65b1cee2..26b1463e 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -87,6 +87,7 @@ jenkins_jobs.builders =
sonatype-clm=jenkins_jobs.modules.builders:sonatype_clm
ssh-builder=jenkins_jobs.modules.builders:ssh_builder
system-groovy=jenkins_jobs.modules.builders:system_groovy
+ tox=jenkins_jobs.modules.builders:tox
trigger-builds=jenkins_jobs.modules.builders:trigger_builds
trigger-remote=jenkins_jobs.modules.builders:trigger_remote
jenkins_jobs.reporters =
diff --git a/tests/builders/fixtures/tox001.xml b/tests/builders/fixtures/tox001.xml
new file mode 100644
index 00000000..1456396a
--- /dev/null
+++ b/tests/builders/fixtures/tox001.xml
@@ -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>
diff --git a/tests/builders/fixtures/tox001.yaml b/tests/builders/fixtures/tox001.yaml
new file mode 100644
index 00000000..4dfead28
--- /dev/null
+++ b/tests/builders/fixtures/tox001.yaml
@@ -0,0 +1,3 @@
+builders:
+ - tox:
+ recreate: True
diff --git a/tests/builders/fixtures/tox002.xml b/tests/builders/fixtures/tox002.xml
new file mode 100644
index 00000000..26cb9291
--- /dev/null
+++ b/tests/builders/fixtures/tox002.xml
@@ -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>
diff --git a/tests/builders/fixtures/tox002.yaml b/tests/builders/fixtures/tox002.yaml
new file mode 100644
index 00000000..8376f440
--- /dev/null
+++ b/tests/builders/fixtures/tox002.yaml
@@ -0,0 +1,5 @@
+builders:
+ - tox:
+ ini: "foo.conf"
+ toxenv-pattern: TOX_ENV
+