diff options
author | Daniel Watkins <daniel.watkins@canonical.com> | 2015-10-13 18:47:31 +0100 |
---|---|---|
committer | Daniel Watkins <daniel.watkins@canonical.com> | 2015-12-19 16:15:20 +0000 |
commit | 860f6ffec5a4ae6609b3c33a100c68a7f760d1f4 (patch) | |
tree | 034a4fe2d45f2a977046bc615a3707aa1bdd6f12 | |
parent | 3765657ec6a9444b57140ffba0101487d0f8db0f (diff) | |
download | python-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.py | 60 | ||||
-rw-r--r-- | tests/scm/fixtures/bzr001.xml | 8 | ||||
-rw-r--r-- | tests/scm/fixtures/bzr001.yaml | 3 | ||||
-rw-r--r-- | tests/scm/fixtures/bzr002.xml | 8 | ||||
-rw-r--r-- | tests/scm/fixtures/bzr002.yaml | 5 | ||||
-rw-r--r-- | tests/scm/fixtures/bzr003.xml | 11 | ||||
-rw-r--r-- | tests/scm/fixtures/bzr003.yaml | 5 | ||||
-rw-r--r-- | tests/scm/fixtures/bzr004.xml | 12 | ||||
-rw-r--r-- | tests/scm/fixtures/bzr004.yaml | 6 |
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 |