From b72b10dd445d0a194cc7044098cdc995c5d0c0a1 Mon Sep 17 00:00:00 2001 From: Fathi Boudra Date: Sun, 1 Jun 2014 19:12:05 +0300 Subject: general: add support for childCustomWorkspace On freestyle project, we can set custom workspace. On matrix project, we can set custom workspace and child custom workspace. It allows to specify the directory for sub-builds. Change-Id: Icef3831174ff805e86f1ece84fef9a438f465691 Signed-off-by: Fathi Boudra --- jenkins_jobs/modules/general.py | 7 +++++++ tests/general/fixtures/custom-workspace001.xml | 10 ++++++++++ tests/general/fixtures/custom-workspace001.yaml | 3 +++ tests/general/fixtures/custom-workspace002.xml | 16 ++++++++++++++++ tests/general/fixtures/custom-workspace002.yaml | 3 +++ 5 files changed, 39 insertions(+) create mode 100644 tests/general/fixtures/custom-workspace001.xml create mode 100644 tests/general/fixtures/custom-workspace001.yaml create mode 100644 tests/general/fixtures/custom-workspace002.xml create mode 100644 tests/general/fixtures/custom-workspace002.yaml diff --git a/jenkins_jobs/modules/general.py b/jenkins_jobs/modules/general.py index 99fc7c03..35e9f10c 100644 --- a/jenkins_jobs/modules/general.py +++ b/jenkins_jobs/modules/general.py @@ -56,6 +56,10 @@ Example: Path for a custom workspace. Defaults to Jenkins default configuration. + * **child-workspace**: + Path for a child custom workspace. Defaults to Jenkins default + configuration. This parameter is only valid for matrix type jobs. + * **quiet-period**: Number of seconds to wait between consecutive runs of this job. Defaults to ``0``. @@ -139,6 +143,9 @@ class General(jenkins_jobs.modules.base.Base): if 'workspace' in data: XML.SubElement(xml, 'customWorkspace').text = \ str(data['workspace']) + if (xml.tag == 'matrix-project') and ('child-workspace' in data): + XML.SubElement(xml, 'childCustomWorkspace').text = \ + str(data['child-workspace']) if 'quiet-period' in data: XML.SubElement(xml, 'quietPeriod').text = str(data['quiet-period']) node = data.get('node', None) diff --git a/tests/general/fixtures/custom-workspace001.xml b/tests/general/fixtures/custom-workspace001.xml new file mode 100644 index 00000000..16b7b4be --- /dev/null +++ b/tests/general/fixtures/custom-workspace001.xml @@ -0,0 +1,10 @@ + + + + false + false + false + false + foo + true + diff --git a/tests/general/fixtures/custom-workspace001.yaml b/tests/general/fixtures/custom-workspace001.yaml new file mode 100644 index 00000000..6e641323 --- /dev/null +++ b/tests/general/fixtures/custom-workspace001.yaml @@ -0,0 +1,3 @@ +project-type: freestyle +workspace: foo +child-workspace: bar diff --git a/tests/general/fixtures/custom-workspace002.xml b/tests/general/fixtures/custom-workspace002.xml new file mode 100644 index 00000000..a3a266b6 --- /dev/null +++ b/tests/general/fixtures/custom-workspace002.xml @@ -0,0 +1,16 @@ + + + + false + + + + + false + false + false + false + foo + bar + true + diff --git a/tests/general/fixtures/custom-workspace002.yaml b/tests/general/fixtures/custom-workspace002.yaml new file mode 100644 index 00000000..a64ac8a8 --- /dev/null +++ b/tests/general/fixtures/custom-workspace002.yaml @@ -0,0 +1,3 @@ +project-type: matrix +workspace: foo +child-workspace: bar -- cgit