diff --git a/jenkins_jobs/modules/builders.py b/jenkins_jobs/modules/builders.py index 4891f4308..bbb554f3b 100644 --- a/jenkins_jobs/modules/builders.py +++ b/jenkins_jobs/modules/builders.py @@ -2728,3 +2728,28 @@ def openshift_svc_verify(parser, xml_parent, data): ] convert_mapping_to_xml(osb, data, mapping) + + +def runscope(parser, xml_parent, data): + """yaml: runscope + Execute a Runscope test. + Requires the Jenkins `Runscope Plugin. + `_ + + :arg str test-trigger-url: Trigger URL for test. (Required) + :arg str access-token: OAuth Personal Access token. (Required) + :arg int timeout: Timeout for test duration in seconds. (Default: 60) + + Example: + + .. literalinclude:: /../../tests/builders/fixtures/runscope.yaml + """ + runscope = XML.SubElement(xml_parent, + 'com.runscope.jenkins.Runscope.RunscopeBuilder') + try: + XML.SubElement(runscope, 'triggerEndPoint').text = data[ + "test-trigger-url"] + XML.SubElement(runscope, 'accessToken').text = data["access-token"] + except KeyError as e: + raise MissingAttributeError(e.args[0]) + XML.SubElement(runscope, 'timeout').text = str(data.get('timeout', '60')) diff --git a/setup.cfg b/setup.cfg index cb2ab759f..b1dd49ded 100644 --- a/setup.cfg +++ b/setup.cfg @@ -78,6 +78,7 @@ jenkins_jobs.builders = powershell=jenkins_jobs.modules.builders:powershell python=jenkins_jobs.modules.builders:python raw=jenkins_jobs.modules.general:raw + runscope=jenkins_jobs.modules.builders:runscope sbt=jenkins_jobs.modules.builders:sbt shell=jenkins_jobs.modules.builders:shell shining-panda=jenkins_jobs.modules.builders:shining_panda diff --git a/tests/builders/fixtures/runscope.xml b/tests/builders/fixtures/runscope.xml new file mode 100644 index 000000000..d14e49b16 --- /dev/null +++ b/tests/builders/fixtures/runscope.xml @@ -0,0 +1,10 @@ + + + + + https://api.runscope.com/radar/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/trigger + 123456 + 60 + + + diff --git a/tests/builders/fixtures/runscope.yaml b/tests/builders/fixtures/runscope.yaml new file mode 100644 index 000000000..9871b1810 --- /dev/null +++ b/tests/builders/fixtures/runscope.yaml @@ -0,0 +1,5 @@ +builders: + - runscope: + test-trigger-url: "https://api.runscope.com/radar/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/trigger" + access-token: "123456" + timeout: 60