summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFatih Degirmenci <fatih.degirmenci@ericsson.com>2016-08-10 01:34:40 +0200
committerFatih Degirmenci <fatih.degirmenci@ericsson.com>2016-08-31 20:10:00 +0200
commit29b82490429cc9a889b4a967a8cc8bed3558941f (patch)
treeda74c56011ce700a9f64613008b034eb1838ce28
parent0b8c110fb47eedfc60fbd28d7bff0ea6fa11f054 (diff)
downloadpython-jenkins-job-builder-29b82490429cc9a889b4a967a8cc8bed3558941f.tar.gz
python-jenkins-job-builder-29b82490429cc9a889b4a967a8cc8bed3558941f.tar.xz
python-jenkins-job-builder-29b82490429cc9a889b4a967a8cc8bed3558941f.zip
Add support for Parameterized Scheduler Plugin
Change-Id: I159d2379e316a7ed037ed24b379c519deb1b22ea Signed-off-by: Fatih Degirmenci <fatih.degirmenci@ericsson.com>
-rw-r--r--jenkins_jobs/modules/triggers.py30
-rw-r--r--tests/triggers/fixtures/parameterized-timer001.xml9
-rw-r--r--tests/triggers/fixtures/parameterized-timer001.yaml3
-rw-r--r--tests/triggers/fixtures/parameterized-timer002.xml11
-rw-r--r--tests/triggers/fixtures/parameterized-timer002.yaml5
5 files changed, 58 insertions, 0 deletions
diff --git a/jenkins_jobs/modules/triggers.py b/jenkins_jobs/modules/triggers.py
index fcdf145f..e8c31799 100644
--- a/jenkins_jobs/modules/triggers.py
+++ b/jenkins_jobs/modules/triggers.py
@@ -1700,6 +1700,36 @@ def rabbitmq(registry, xml_parent, data):
raise MissingAttributeError(e.arg[0])
+def parameterized_timer(parser, xml_parent, data):
+ """yaml: parameterized-timer
+ Trigger builds with parameters at certain times.
+ Requires the Jenkins :jenkins-wiki:`Parameterized Scheduler Plugin
+ <Parameterized+Scheduler+Plugin>`.
+
+ :arg str cron: cron syntax of when to run and with which parameters
+ (required)
+
+ Example:
+
+ .. literalinclude::
+ /../../tests/triggers/fixtures/parameterized-timer001.yaml
+ :language: yaml
+ """
+
+ param_timer = XML.SubElement(
+ xml_parent,
+ 'org.jenkinsci.plugins.parameterizedscheduler.'
+ 'ParameterizedTimerTrigger')
+
+ XML.SubElement(param_timer, 'spec').text = ''
+
+ try:
+ XML.SubElement(param_timer, 'parameterizedSpecification').text = str(
+ data.get('cron'))
+ except KeyError as e:
+ raise MissingAttributeError(e)
+
+
class Triggers(jenkins_jobs.modules.base.Base):
sequence = 50
diff --git a/tests/triggers/fixtures/parameterized-timer001.xml b/tests/triggers/fixtures/parameterized-timer001.xml
new file mode 100644
index 00000000..d05e4411
--- /dev/null
+++ b/tests/triggers/fixtures/parameterized-timer001.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <org.jenkinsci.plugins.parameterizedscheduler.ParameterizedTimerTrigger>
+ <spec/>
+ <parameterizedSpecification>@midnight % PARAM=value</parameterizedSpecification>
+ </org.jenkinsci.plugins.parameterizedscheduler.ParameterizedTimerTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/parameterized-timer001.yaml b/tests/triggers/fixtures/parameterized-timer001.yaml
new file mode 100644
index 00000000..93052ac8
--- /dev/null
+++ b/tests/triggers/fixtures/parameterized-timer001.yaml
@@ -0,0 +1,3 @@
+triggers:
+ - parameterized-timer:
+ cron: "@midnight % PARAM=value"
diff --git a/tests/triggers/fixtures/parameterized-timer002.xml b/tests/triggers/fixtures/parameterized-timer002.xml
new file mode 100644
index 00000000..ba3b4790
--- /dev/null
+++ b/tests/triggers/fixtures/parameterized-timer002.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <org.jenkinsci.plugins.parameterizedscheduler.ParameterizedTimerTrigger>
+ <spec/>
+ <parameterizedSpecification>0 * * * * % param1=value1;param2=value2
+30 * * * * % param1=value3;param2=value4
+</parameterizedSpecification>
+ </org.jenkinsci.plugins.parameterizedscheduler.ParameterizedTimerTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/parameterized-timer002.yaml b/tests/triggers/fixtures/parameterized-timer002.yaml
new file mode 100644
index 00000000..a154b111
--- /dev/null
+++ b/tests/triggers/fixtures/parameterized-timer002.yaml
@@ -0,0 +1,5 @@
+triggers:
+ - parameterized-timer:
+ cron: |
+ 0 * * * * % param1=value1;param2=value2
+ 30 * * * * % param1=value3;param2=value4