summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Watkins <daniel.watkins@canonical.com>2015-10-13 18:47:31 +0100
committerDaniel Watkins <daniel.watkins@canonical.com>2015-12-19 16:15:20 +0000
commit860f6ffec5a4ae6609b3c33a100c68a7f760d1f4 (patch)
tree034a4fe2d45f2a977046bc615a3707aa1bdd6f12
parent3765657ec6a9444b57140ffba0101487d0f8db0f (diff)
downloadpython-jenkins-job-builder-860f6ffec5a4ae6609b3c33a100c68a7f760d1f4.tar.gz
python-jenkins-job-builder-860f6ffec5a4ae6609b3c33a100c68a7f760d1f4.tar.xz
python-jenkins-job-builder-860f6ffec5a4ae6609b3c33a100c68a7f760d1f4.zip
Implement bzr SCM module.
Change-Id: Iee9c42a742b4062cb4756d16e5978905e115f13f
-rw-r--r--jenkins_jobs/modules/scm.py60
-rw-r--r--tests/scm/fixtures/bzr001.xml8
-rw-r--r--tests/scm/fixtures/bzr001.yaml3
-rw-r--r--tests/scm/fixtures/bzr002.xml8
-rw-r--r--tests/scm/fixtures/bzr002.yaml5
-rw-r--r--tests/scm/fixtures/bzr003.xml11
-rw-r--r--tests/scm/fixtures/bzr003.yaml5
-rw-r--r--tests/scm/fixtures/bzr004.xml12
-rw-r--r--tests/scm/fixtures/bzr004.yaml6
9 files changed, 118 insertions, 0 deletions
diff --git a/jenkins_jobs/modules/scm.py b/jenkins_jobs/modules/scm.py
index 299dce5d..fc5ecc24 100644
--- a/jenkins_jobs/modules/scm.py
+++ b/jenkins_jobs/modules/scm.py
@@ -1102,6 +1102,66 @@ def openshift_img_streams(parser, xml_parent, data):
convert_mapping_to_xml(scm, data, mapping)
+def bzr(parser, xml_parent, data):
+ """yaml: bzr
+ Specifies the bzr SCM repository for this job.
+ Requires the Jenkins :jenkins-wiki:`Bazaar Plugin <Bazaar+Plugin>`.
+
+ :arg str url: URL of the bzr branch
+ :arg bool clean-tree: Clean up the workspace (using bzr) before pulling
+ the branch (default: false)
+ :arg bool lightweight-checkout: Use a lightweight checkout instead of a
+ full branch (default: false)
+ :arg str browser: The repository browser to use.
+
+ :browsers supported:
+ * **auto** - (default)
+ * **loggerhead** - as used by Launchpad
+ * **opengrok** - https://opengrok.github.io/OpenGrok/
+
+ :arg str browser-url:
+ URL for the repository browser (required if browser is set).
+
+ :arg str opengrok-root-module:
+ Root module for OpenGrok (required if browser is opengrok).
+
+ Example:
+
+ .. literalinclude:: /../../tests/scm/fixtures/bzr001.yaml
+ """
+ if 'url' not in data:
+ raise JenkinsJobsException('Must specify a url for bzr scm')
+ mapping = [
+ # option, xml name, default value (text), attributes (hard coded)
+ ('url', 'source', ''),
+ ('clean-tree', 'cleantree', False),
+ ('lightweight-checkout', 'checkout', False),
+ ]
+ scm_element = XML.SubElement(
+ xml_parent, 'scm', {'class': 'hudson.plugins.bazaar.BazaarSCM'})
+ convert_mapping_to_xml(scm_element, data, mapping)
+
+ browser_name_to_class = {
+ 'loggerhead': 'Loggerhead',
+ 'opengrok': 'OpenGrok',
+ }
+ browser = data.get('browser', 'auto')
+ if browser == 'auto':
+ return
+ if browser not in browser_name_to_class:
+ raise InvalidAttributeError('browser', browser,
+ browser_name_to_class.keys())
+ browser_element = XML.SubElement(
+ scm_element,
+ 'browser',
+ {'class': 'hudson.plugins.bazaar.browsers.{0}'.format(
+ browser_name_to_class[browser])})
+ XML.SubElement(browser_element, 'url').text = data['browser-url']
+ if browser == 'opengrok':
+ XML.SubElement(browser_element, 'rootModule').text = (
+ data['opengrok-root-module'])
+
+
class SCM(jenkins_jobs.modules.base.Base):
sequence = 30
diff --git a/tests/scm/fixtures/bzr001.xml b/tests/scm/fixtures/bzr001.xml
new file mode 100644
index 00000000..1ae40823
--- /dev/null
+++ b/tests/scm/fixtures/bzr001.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <scm class="hudson.plugins.bazaar.BazaarSCM">
+ <source>lp:test_project</source>
+ <cleantree>false</cleantree>
+ <checkout>false</checkout>
+ </scm>
+</project>
diff --git a/tests/scm/fixtures/bzr001.yaml b/tests/scm/fixtures/bzr001.yaml
new file mode 100644
index 00000000..cf1714e0
--- /dev/null
+++ b/tests/scm/fixtures/bzr001.yaml
@@ -0,0 +1,3 @@
+scm:
+ - bzr:
+ url: lp:test_project
diff --git a/tests/scm/fixtures/bzr002.xml b/tests/scm/fixtures/bzr002.xml
new file mode 100644
index 00000000..7500a3e3
--- /dev/null
+++ b/tests/scm/fixtures/bzr002.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <scm class="hudson.plugins.bazaar.BazaarSCM">
+ <source>lp:test_project</source>
+ <cleantree>true</cleantree>
+ <checkout>true</checkout>
+ </scm>
+</project>
diff --git a/tests/scm/fixtures/bzr002.yaml b/tests/scm/fixtures/bzr002.yaml
new file mode 100644
index 00000000..13a27c9b
--- /dev/null
+++ b/tests/scm/fixtures/bzr002.yaml
@@ -0,0 +1,5 @@
+scm:
+ - bzr:
+ url: lp:test_project
+ lightweight-checkout: True
+ clean-tree: True
diff --git a/tests/scm/fixtures/bzr003.xml b/tests/scm/fixtures/bzr003.xml
new file mode 100644
index 00000000..a4c2448c
--- /dev/null
+++ b/tests/scm/fixtures/bzr003.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <scm class="hudson.plugins.bazaar.BazaarSCM">
+ <source>lp:test_project</source>
+ <cleantree>false</cleantree>
+ <checkout>false</checkout>
+ <browser class="hudson.plugins.bazaar.browsers.Loggerhead">
+ <url>http://browser.example.com</url>
+ </browser>
+ </scm>
+</project>
diff --git a/tests/scm/fixtures/bzr003.yaml b/tests/scm/fixtures/bzr003.yaml
new file mode 100644
index 00000000..8e4f8dbf
--- /dev/null
+++ b/tests/scm/fixtures/bzr003.yaml
@@ -0,0 +1,5 @@
+scm:
+ - bzr:
+ url: lp:test_project
+ browser: loggerhead
+ browser-url: http://browser.example.com
diff --git a/tests/scm/fixtures/bzr004.xml b/tests/scm/fixtures/bzr004.xml
new file mode 100644
index 00000000..59d7273c
--- /dev/null
+++ b/tests/scm/fixtures/bzr004.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <scm class="hudson.plugins.bazaar.BazaarSCM">
+ <source>lp:test_project</source>
+ <cleantree>false</cleantree>
+ <checkout>false</checkout>
+ <browser class="hudson.plugins.bazaar.browsers.OpenGrok">
+ <url>http://browser.example.com</url>
+ <rootModule>root/module</rootModule>
+ </browser>
+ </scm>
+</project>
diff --git a/tests/scm/fixtures/bzr004.yaml b/tests/scm/fixtures/bzr004.yaml
new file mode 100644
index 00000000..75fdb764
--- /dev/null
+++ b/tests/scm/fixtures/bzr004.yaml
@@ -0,0 +1,6 @@
+scm:
+ - bzr:
+ url: lp:test_project
+ browser: opengrok
+ browser-url: http://browser.example.com
+ opengrok-root-module: root/module