From 0983a272c56325b316e016aaa31044d919cb8a1a Mon Sep 17 00:00:00 2001 From: Marco Nenciarini Date: Wed, 16 Sep 2015 11:55:39 +0200 Subject: [PATCH] Support for Shiningpanda's Tox Builder Change-Id: Iebe55aeed98e73935934c036699932d70604528a Signed-off-by: Marco Nenciarini --- jenkins_jobs/modules/builders.py | 31 ++++++++++++++++++++++++ setup.cfg | 1 + tests/builders/fixtures/tox-default.xml | 9 +++++++ tests/builders/fixtures/tox-default.yaml | 2 ++ tests/builders/fixtures/tox.xml | 9 +++++++ tests/builders/fixtures/tox.yaml | 4 +++ 6 files changed, 56 insertions(+) create mode 100644 tests/builders/fixtures/tox-default.xml create mode 100644 tests/builders/fixtures/tox-default.yaml create mode 100644 tests/builders/fixtures/tox.xml create mode 100644 tests/builders/fixtures/tox.yaml diff --git a/jenkins_jobs/modules/builders.py b/jenkins_jobs/modules/builders.py index 3c68526c7..40973c2a0 100644 --- a/jenkins_jobs/modules/builders.py +++ b/jenkins_jobs/modules/builders.py @@ -1870,6 +1870,37 @@ class Builders(jenkins_jobs.modules.base.Base): XML.SubElement(xml_parent, 'builders') +def tox(parser, xml_parent, data): + """yaml: tox + Execute a tox environment. Requires the Jenkins + :jenkins-wiki:`ShiningPanda plugin `. + + :arg str configuration-file: + Workspace relative path to tox configuration file. (default: + tox.ini) + + :arg bool recreate: + Force recreation of virtual environments. (default: false) + + Examples: + + .. literalinclude:: + /../../tests/builders/fixtures/tox-default.yaml + :language: yaml + + .. literalinclude:: + /../../tests/builders/fixtures/tox.yaml + :language: yaml + + """ + tox = XML.SubElement( + xml_parent, 'jenkins.plugins.shiningpanda.builders.ToxBuilder') + configuration_file = XML.SubElement(tox, 'toxIni') + configuration_file.text = data.get('configuration-file', 'tox.ini') + recreate = XML.SubElement(tox, 'recreate') + recreate.text = str(data.get('recreate', False)).lower() + + def shining_panda(parser, xml_parent, data): """yaml: shining-panda Execute a command inside various python environments. Requires the Jenkins diff --git a/setup.cfg b/setup.cfg index 3acef4f49..183c1eefa 100644 --- a/setup.cfg +++ b/setup.cfg @@ -79,6 +79,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/tox-default.xml b/tests/builders/fixtures/tox-default.xml new file mode 100644 index 000000000..e8ee3086f --- /dev/null +++ b/tests/builders/fixtures/tox-default.xml @@ -0,0 +1,9 @@ + + + + + tox.ini + false + + + diff --git a/tests/builders/fixtures/tox-default.yaml b/tests/builders/fixtures/tox-default.yaml new file mode 100644 index 000000000..c78b7bba7 --- /dev/null +++ b/tests/builders/fixtures/tox-default.yaml @@ -0,0 +1,2 @@ +builders: + - tox diff --git a/tests/builders/fixtures/tox.xml b/tests/builders/fixtures/tox.xml new file mode 100644 index 000000000..8cd89437b --- /dev/null +++ b/tests/builders/fixtures/tox.xml @@ -0,0 +1,9 @@ + + + + + alternate-tox.ini + true + + + diff --git a/tests/builders/fixtures/tox.yaml b/tests/builders/fixtures/tox.yaml new file mode 100644 index 000000000..27db0e697 --- /dev/null +++ b/tests/builders/fixtures/tox.yaml @@ -0,0 +1,4 @@ +builders: + - tox: + configuration-file: alternate-tox.ini + recreate: true