Allow whitespace to be significant

Remove the test options suppressing ignoring differences in whitespace
outputted in the XML to allow capturing of issues where the code
incorrectly adds or removes significant whitespace.

Add a helper function to deal with the edge case of parsing XML directly
that contains non significant whitespace to avoid accidentally adding
excess whitespace when minidom outputs the resulting document.

Change-Id: I9936042cd82c204ba2b3c19f575703e33564f7fd
This commit is contained in:
Darragh Bailey 2015-07-27 15:30:39 +01:00
parent 347a231e07
commit e5738d0852
52 changed files with 323 additions and 303 deletions

View File

@ -99,6 +99,7 @@ Example:
import xml.etree.ElementTree as XML
import jenkins_jobs.modules.base
from jenkins_jobs.xml_config import remove_ignorable_whitespace
class General(jenkins_jobs.modules.base.Base):
@ -175,4 +176,5 @@ def raw(parser, xml_parent, data):
# documented in definition.rst since includes and docs is not working well
# For cross cutting method like this
root = XML.fromstring(data.get('xml'))
remove_ignorable_whitespace(root)
xml_parent.append(root)

View File

@ -59,6 +59,28 @@ if sys.version_info[:3] < (2, 7, 3) or xml.__name__ != 'xml':
minidom.Element.writexml = writexml
def remove_ignorable_whitespace(node):
"""Remove insignificant whitespace from XML nodes
It should only remove whitespace in between elements and sub elements.
This should be safe for Jenkins due to how it's XML serialization works
but may not be valid for other XML documents. So use this method with
caution outside of this specific library.
"""
# strip tail whitespace if it's not significant
if node.tail and node.tail.strip() == "":
node.tail = None
for child in node.getchildren():
# only strip whitespace from the text node if there are subelement
# nodes as this means we are removing leading whitespace before such
# sub elements. Otherwise risk removing whitespace from an element
# that only contains whitespace
if node.text and node.text.strip() == "":
node.text = None
remove_ignorable_whitespace(child)
class XmlJob(object):
def __init__(self, xml, name):
self.xml = xml

View File

@ -171,7 +171,6 @@ class BaseTestCase(object):
pretty_xml,
testtools.matchers.DocTestMatches(expected_xml,
doctest.ELLIPSIS |
doctest.NORMALIZE_WHITESPACE |
doctest.REPORT_NDIFF)
)
@ -202,7 +201,6 @@ class SingleJobTestCase(BaseTestCase):
pretty_xml,
testtools.matchers.DocTestMatches(expected_xml,
doctest.ELLIPSIS |
doctest.NORMALIZE_WHITESPACE |
doctest.REPORT_NDIFF)
)
@ -220,7 +218,6 @@ class JsonTestCase(BaseTestCase):
pretty_json,
testtools.matchers.DocTestMatches(expected_json,
doctest.ELLIPSIS |
doctest.NORMALIZE_WHITESPACE |
doctest.REPORT_NDIFF)
)
@ -242,6 +239,5 @@ class YamlTestCase(BaseTestCase):
pretty_yaml,
testtools.matchers.DocTestMatches(expected_yaml,
doctest.ELLIPSIS |
doctest.NORMALIZE_WHITESPACE |
doctest.REPORT_NDIFF)
)

View File

@ -3,12 +3,13 @@
<builders>
<hudson.tasks.Maven>
<targets>clean</targets>
<properties>foo=bar bar=foo</properties>
<properties>foo=bar
bar=foo</properties>
<mavenName>Maven3</mavenName>
<pom>parent/pom.xml</pom>
<usePrivateRepository>true</usePrivateRepository>
<jvmOptions>-Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m</jvmOptions>
<settings class="jenkins.mvn.FilePathSettingsProvider">
<settings class="jenkins.mvn.FilePathSettingsProvider">
<path>mvn/settings.xml</path>
</settings>
<globalSettings class="jenkins.mvn.FilePathGlobalSettingsProvider">

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<builders>
<hudson.plugins.python.Python>
<command>import foobar</command>
</hudson.plugins.python.Python>
</builders>
<builders>
<hudson.plugins.python.Python>
<command>import foobar</command>
</hudson.plugins.python.Python>
</builders>
</project>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<builders>
<hudson.tasks.Shell>
<command>make test</command>
</hudson.tasks.Shell>
</builders>
<builders>
<hudson.tasks.Shell>
<command>make test</command>
</hudson.tasks.Shell>
</builders>
</project>

View File

@ -12,7 +12,7 @@
<blockBuildUntilComplete>true</blockBuildUntilComplete>
<parameters>FOO=&quot;bar&quot;
herp=&quot;derp&quot;
</parameters>
</parameters>
<parameterList>
<string>FOO=&quot;bar&quot;</string>
<string>herp=&quot;derp&quot;</string>

View File

@ -19,7 +19,7 @@
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>origin/stable-2</name>
<name>origin/stable-2</name>
</hudson.plugins.git.BranchSpec>
</branches>
<excludedUsers/>

View File

@ -19,7 +19,7 @@
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>origin/stable-2</name>
<name>origin/stable-2</name>
</hudson.plugins.git.BranchSpec>
</branches>
<excludedUsers/>

View File

@ -49,6 +49,7 @@
<publishers/>
<buildWrappers/>
</project>
<?xml version="1.0" encoding="utf-8"?>
<project>
<actions/>

View File

@ -19,7 +19,7 @@
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>origin/stable-1.1</name>
<name>origin/stable-1.1</name>
</hudson.plugins.git.BranchSpec>
</branches>
<excludedUsers/>
@ -49,6 +49,7 @@
<publishers/>
<buildWrappers/>
</project>
<?xml version="1.0" encoding="utf-8"?>
<project>
<actions/>
@ -70,7 +71,7 @@
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>origin/stable-2.0</name>
<name>origin/stable-2.0</name>
</hudson.plugins.git.BranchSpec>
</branches>
<excludedUsers/>

View File

@ -5,7 +5,6 @@
fail: true
timeout: 180
- timestamps
- job_defaults:
name: defaults
wrappers:
@ -13,7 +12,6 @@
fail: true
timeout: 180
- timestamps
- job-template:
name: myjob
wrappers:

View File

@ -7,7 +7,7 @@
"shell": "#!/bin/bash\n#\n# Sample script showing how the yaml include-raw tag can be used\n# to inline scripts that are maintained outside of the jenkins\n# job yaml configuration.\n\necho \"hello world\"\n\nexit 0\n"
},
{
"shell": "#!/bin/bash\n#\n# sample script to check that brackets aren't escaped\n# when using the include-raw application yaml tag\n\nVAR1=\"hello\"\nVAR2=\"world\"\nVAR3=\"${{VAR1}} ${{VAR2}}\"\n\n[[ -n \"${{VAR3}}\" ]] && {{\n # this next section is executed as one\n echo \"${{VAR3}}\"\n exit 0\n}}\n\n"
"shell": "#!/bin/bash\n#\n# sample script to check that brackets aren't escaped\n# when using the include-raw application yaml tag\n\nVAR1=\"hello\"\nVAR2=\"world\"\nVAR3=\"${{VAR1}} ${{VAR2}}\"\n\n[[ -n \"${{VAR3}}\" ]] && {{\n # this next section is executed as one\n echo \"${{VAR3}}\"\n exit 0\n}}\n\n"
}
]
}

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<properties>
<se.diabol.jenkins.pipeline.PipelineProperty>
<stageName>Stage</stageName>
<taskName>Task</taskName>
</se.diabol.jenkins.pipeline.PipelineProperty>
</properties>
<properties>
<se.diabol.jenkins.pipeline.PipelineProperty>
<stageName>Stage</stageName>
<taskName>Task</taskName>
</se.diabol.jenkins.pipeline.PipelineProperty>
</properties>
</project>

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<properties>
<se.diabol.jenkins.pipeline.PipelineProperty>
<stageName/>
<taskName/>
</se.diabol.jenkins.pipeline.PipelineProperty>
</properties>
<properties>
<se.diabol.jenkins.pipeline.PipelineProperty>
<stageName/>
<taskName/>
</se.diabol.jenkins.pipeline.PipelineProperty>
</properties>
</project>

View File

@ -4,8 +4,8 @@
<EnvInjectJobProperty>
<info>
<propertiesContent>FOO=bar
BAZ=foobar
</propertiesContent>
BAZ=foobar
</propertiesContent>
<loadFilesFromMaster>false</loadFilesFromMaster>
</info>
<on>true</on>

View File

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<properties>
<hudson.plugins.sidebar__link.ProjectLinks>
<links>
<hudson.plugins.sidebar__link.LinkAction>
<url>https://jenkins.debian.net/userContent/about.html</url>
<text>About jenkins.debian.net</text>
<icon>/userContent/images/debian-swirl-24x24.png</icon>
</hudson.plugins.sidebar__link.LinkAction>
</links>
</hudson.plugins.sidebar__link.ProjectLinks>
<hudson.plugins.sidebar__link.ProjectLinks>
<links>
<hudson.plugins.sidebar__link.LinkAction>
<url>https://jenkins.debian.net/userContent/about.html</url>
<text>About jenkins.debian.net</text>
<icon>/userContent/images/debian-swirl-24x24.png</icon>
</hudson.plugins.sidebar__link.LinkAction>
</links>
</hudson.plugins.sidebar__link.ProjectLinks>
</properties>
</project>

View File

@ -17,4 +17,3 @@
</hudson.plugins.sidebar__link.ProjectLinks>
</properties>
</project>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<org.zeroturnaround.jenkins.flowbuildtestaggregator.FlowTestAggregator/>
</publishers>
<publishers>
<org.zeroturnaround.jenkins.flowbuildtestaggregator.FlowTestAggregator/>
</publishers>
</project>

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.tasks.ArtifactArchiver>
<artifacts>*.tar.gz</artifacts>
<latestOnly>false</latestOnly>
<allowEmptyArchive>true</allowEmptyArchive>
<fingerprint>true</fingerprint>
</hudson.tasks.ArtifactArchiver>
</publishers>
<publishers>
<hudson.tasks.ArtifactArchiver>
<artifacts>*.tar.gz</artifacts>
<latestOnly>false</latestOnly>
<allowEmptyArchive>true</allowEmptyArchive>
<fingerprint>true</fingerprint>
</hudson.tasks.ArtifactArchiver>
</publishers>
</project>

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.tasks.ArtifactArchiver>
<artifacts>*.tar.gz</artifacts>
<latestOnly>false</latestOnly>
<allowEmptyArchive>true</allowEmptyArchive>
<onlyIfSuccessful>true</onlyIfSuccessful>
<fingerprint>true</fingerprint>
</hudson.tasks.ArtifactArchiver>
</publishers>
<publishers>
<hudson.tasks.ArtifactArchiver>
<artifacts>*.tar.gz</artifacts>
<latestOnly>false</latestOnly>
<allowEmptyArchive>true</allowEmptyArchive>
<onlyIfSuccessful>true</onlyIfSuccessful>
<fingerprint>true</fingerprint>
</hudson.tasks.ArtifactArchiver>
</publishers>
</project>

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.tasks.ArtifactArchiver>
<artifacts>*.tar.gz</artifacts>
<latestOnly>false</latestOnly>
<allowEmptyArchive>true</allowEmptyArchive>
<onlyIfSuccessful>false</onlyIfSuccessful>
<fingerprint>true</fingerprint>
</hudson.tasks.ArtifactArchiver>
</publishers>
<publishers>
<hudson.tasks.ArtifactArchiver>
<artifacts>*.tar.gz</artifacts>
<latestOnly>false</latestOnly>
<allowEmptyArchive>true</allowEmptyArchive>
<onlyIfSuccessful>false</onlyIfSuccessful>
<fingerprint>true</fingerprint>
</hudson.tasks.ArtifactArchiver>
</publishers>
</project>

View File

@ -4,4 +4,3 @@
<hudson.plugins.blame__upstream__commiters.BlameUpstreamCommitersPublisher/>
</publishers>
</project>

View File

@ -2,7 +2,7 @@
<project>
<publishers>
<hudson.plugins.campfire.CampfireNotifier>
<campfire/>
<campfire/>
</hudson.plugins.campfire.CampfireNotifier>
</publishers>
</project>

View File

@ -31,4 +31,3 @@
</jenkins.plugins.publish__over__cifs.CifsPublisherPlugin>
</publishers>
</project>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<jenkins.plugins.displayupstreamchanges.DisplayUpstreamChangesRecorder/>
</publishers>
<publishers>
<jenkins.plugins.displayupstreamchanges.DisplayUpstreamChangesRecorder/>
</publishers>
</project>

View File

@ -159,7 +159,7 @@
</email>
</hudson.plugins.emailext.plugins.trigger.PreBuildTrigger>
</configuredTriggers>
<contentType>text/html</contentType>
<contentType>text/html</contentType>
<defaultSubject>Subject for Build ${BUILD_NUMBER}</defaultSubject>
<defaultContent>The build has finished</defaultContent>
<attachmentsPattern>*/foo*.log</attachmentsPattern>

View File

@ -32,5 +32,3 @@
</jenkins.plugins.publish__over__ftp.BapFtpPublisherPlugin>
</publishers>
</project>

View File

@ -18,7 +18,7 @@
<branchesToPush>
<hudson.plugins.git.GitPublisher_-BranchToPush>
<targetRepoName>branchremotename</targetRepoName>
<branchName>some/branch</branchName>
<branchName>some/branch</branchName>
</hudson.plugins.git.GitPublisher_-BranchToPush>
</branchesToPush>
<notesToPush>

View File

@ -1,27 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.ircbot.IrcPublisher>
<buildToChatNotifier class="hudson.plugins.im.build_notify.DefaultBuildToChatNotifier"/>
<strategy>ALL</strategy>
<targets>
<hudson.plugins.im.GroupChatIMMessageTarget>
<name>#jenkins-channel1</name>
<password>secrete</password>
<notificationOnly>false</notificationOnly>
</hudson.plugins.im.GroupChatIMMessageTarget>
<hudson.plugins.im.GroupChatIMMessageTarget>
<name>#jenkins-channel2</name>
<password/>
<notificationOnly>true</notificationOnly>
</hudson.plugins.im.GroupChatIMMessageTarget>
</targets>
<notifyOnBuildStart>false</notifyOnBuildStart>
<notifySuspects>false</notifySuspects>
<notifyCulprits>false</notifyCulprits>
<notifyFixers>false</notifyFixers>
<notifyUpstreamCommitters>false</notifyUpstreamCommitters>
<matrixMultiplier>ONLY_CONFIGURATIONS</matrixMultiplier>
</hudson.plugins.ircbot.IrcPublisher>
<hudson.plugins.ircbot.IrcPublisher>
<buildToChatNotifier class="hudson.plugins.im.build_notify.DefaultBuildToChatNotifier"/>
<strategy>ALL</strategy>
<targets>
<hudson.plugins.im.GroupChatIMMessageTarget>
<name>#jenkins-channel1</name>
<password>secrete</password>
<notificationOnly>false</notificationOnly>
</hudson.plugins.im.GroupChatIMMessageTarget>
<hudson.plugins.im.GroupChatIMMessageTarget>
<name>#jenkins-channel2</name>
<password/>
<notificationOnly>true</notificationOnly>
</hudson.plugins.im.GroupChatIMMessageTarget>
</targets>
<notifyOnBuildStart>false</notifyOnBuildStart>
<notifySuspects>false</notifySuspects>
<notifyCulprits>false</notifyCulprits>
<notifyFixers>false</notifyFixers>
<notifyUpstreamCommitters>false</notifyUpstreamCommitters>
<matrixMultiplier>ONLY_CONFIGURATIONS</matrixMultiplier>
</hudson.plugins.ircbot.IrcPublisher>
</publishers>
</project>

View File

@ -1,22 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.ircbot.IrcPublisher>
<buildToChatNotifier class="hudson.plugins.im.build_notify.DefaultBuildToChatNotifier"/>
<strategy>ALL</strategy>
<targets>
<hudson.plugins.im.GroupChatIMMessageTarget>
<name>#jenkins-channel</name>
<password/>
<notificationOnly>true</notificationOnly>
</hudson.plugins.im.GroupChatIMMessageTarget>
</targets>
<notifyOnBuildStart>false</notifyOnBuildStart>
<notifySuspects>false</notifySuspects>
<notifyCulprits>false</notifyCulprits>
<notifyFixers>false</notifyFixers>
<notifyUpstreamCommitters>false</notifyUpstreamCommitters>
<matrixMultiplier>ONLY_CONFIGURATIONS</matrixMultiplier>
</hudson.plugins.ircbot.IrcPublisher>
<hudson.plugins.ircbot.IrcPublisher>
<buildToChatNotifier class="hudson.plugins.im.build_notify.DefaultBuildToChatNotifier"/>
<strategy>ALL</strategy>
<targets>
<hudson.plugins.im.GroupChatIMMessageTarget>
<name>#jenkins-channel</name>
<password/>
<notificationOnly>true</notificationOnly>
</hudson.plugins.im.GroupChatIMMessageTarget>
</targets>
<notifyOnBuildStart>false</notifyOnBuildStart>
<notifySuspects>false</notifySuspects>
<notifyCulprits>false</notifyCulprits>
<notifyFixers>false</notifyFixers>
<notifyUpstreamCommitters>false</notifyUpstreamCommitters>
<matrixMultiplier>ONLY_CONFIGURATIONS</matrixMultiplier>
</hudson.plugins.ircbot.IrcPublisher>
</publishers>
</project>

View File

@ -1,17 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<jenkins.plugins.jclouds.blobstore.BlobStorePublisher>
<profileName>hp</profileName>
<entries>
<jenkins.plugins.jclouds.blobstore.BlobStoreEntry>
<container>jenkins</container>
<path/>
<sourceFile>*.tar.gz</sourceFile>
<keepHierarchy>false</keepHierarchy>
</jenkins.plugins.jclouds.blobstore.BlobStoreEntry>
</entries>
</jenkins.plugins.jclouds.blobstore.BlobStorePublisher>
</publishers>
<publishers>
<jenkins.plugins.jclouds.blobstore.BlobStorePublisher>
<profileName>hp</profileName>
<entries>
<jenkins.plugins.jclouds.blobstore.BlobStoreEntry>
<container>jenkins</container>
<path/>
<sourceFile>*.tar.gz</sourceFile>
<keepHierarchy>false</keepHierarchy>
</jenkins.plugins.jclouds.blobstore.BlobStoreEntry>
</entries>
</jenkins.plugins.jclouds.blobstore.BlobStorePublisher>
</publishers>
</project>

View File

@ -6,10 +6,10 @@
<hudson.tasks.Shell>
<command>echo &quot;Shell execution&quot;</command>
</hudson.tasks.Shell>
<hudson.tasks.Ant>
<targets>ant_target</targets>
<antName>default</antName>
</hudson.tasks.Ant>
<hudson.tasks.Ant>
<targets>ant_target</targets>
<antName>default</antName>
</hudson.tasks.Ant>
</buildSteps>
<scriptOnlyIfSuccess>true</scriptOnlyIfSuccess>
<scriptOnlyIfFailure>false</scriptOnlyIfFailure>

View File

@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.sitemonitor.SiteMonitorRecorder>
<mSites>
<hudson.plugins.sitemonitor.model.Site>
<mUrl>http://foo.example.com</mUrl>
</hudson.plugins.sitemonitor.model.Site>
<hudson.plugins.sitemonitor.model.Site>
<mUrl>http://bar.example.com:8080/</mUrl>
</hudson.plugins.sitemonitor.model.Site>
</mSites>
</hudson.plugins.sitemonitor.SiteMonitorRecorder>
</publishers>
</project>
<project>
<publishers>
<hudson.plugins.sitemonitor.SiteMonitorRecorder>
<mSites>
<hudson.plugins.sitemonitor.model.Site>
<mUrl>http://foo.example.com</mUrl>
</hudson.plugins.sitemonitor.model.Site>
<hudson.plugins.sitemonitor.model.Site>
<mUrl>http://bar.example.com:8080/</mUrl>
</hudson.plugins.sitemonitor.model.Site>
</mSites>
</hudson.plugins.sitemonitor.SiteMonitorRecorder>
</publishers>
</project>

View File

@ -2,82 +2,81 @@
<project>
<publishers>
<hudson.plugins.parameterizedtrigger.BuildTrigger>
<configs>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
<properties>foo=bar
<configs>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
<properties>foo=bar
bar=foo
</properties>
</hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
</configs>
<projects>other_job,foo,bar</projects>
<condition>ALWAYS</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
<properties>BUILD_NUM=${BUILD_NUMBER}</properties>
</hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
<hudson.plugins.parameterizedtrigger.FileBuildParameters>
<propertiesFile>version.prop</propertiesFile>
<failTriggerOnMissing>true</failTriggerOnMissing>
</hudson.plugins.parameterizedtrigger.FileBuildParameters>
</configs>
<projects>other_job1, other_job2</projects>
<condition>ALWAYS</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
<properties>foo=bar</properties>
</hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
<hudson.plugins.git.GitRevisionBuildParameters>
<combineQueuedCommits>false</combineQueuedCommits>
</hudson.plugins.git.GitRevisionBuildParameters>
<hudson.plugins.parameterizedtrigger.matrix.MatrixSubsetBuildParameters>
<filter>label==&quot;x86&quot;</filter>
</hudson.plugins.parameterizedtrigger.matrix.MatrixSubsetBuildParameters>
</configs>
<projects>yet_another_job</projects>
<condition>ALWAYS</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<org.jvnet.jenkins.plugins.nodelabelparameter.parameterizedtrigger.NodeLabelBuildParameter>
<name>foo</name>
<nodeLabel/>
</org.jvnet.jenkins.plugins.nodelabelparameter.parameterizedtrigger.NodeLabelBuildParameter>
</configs>
<projects>yet_another_job_2</projects>
<condition>ALWAYS</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<org.jvnet.jenkins.plugins.nodelabelparameter.parameterizedtrigger.NodeLabelBuildParameter>
<name/>
<nodeLabel>node-label-foo || node-label-bar</nodeLabel>
</org.jvnet.jenkins.plugins.nodelabelparameter.parameterizedtrigger.NodeLabelBuildParameter>
</configs>
<projects>yet_another_job_3</projects>
<condition>ALWAYS</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.CurrentBuildParameters/>
<hudson.plugins.parameterizedtrigger.NodeParameters/>
</configs>
<projects>test-project-same-node</projects>
<condition>ALWAYS</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
</configs>
</properties>
</hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
</configs>
<projects>other_job,foo,bar</projects>
<condition>ALWAYS</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
<properties>BUILD_NUM=${BUILD_NUMBER}</properties>
</hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
<hudson.plugins.parameterizedtrigger.FileBuildParameters>
<propertiesFile>version.prop</propertiesFile>
<failTriggerOnMissing>true</failTriggerOnMissing>
</hudson.plugins.parameterizedtrigger.FileBuildParameters>
</configs>
<projects>other_job1, other_job2</projects>
<condition>ALWAYS</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
<properties>foo=bar</properties>
</hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
<hudson.plugins.git.GitRevisionBuildParameters>
<combineQueuedCommits>false</combineQueuedCommits>
</hudson.plugins.git.GitRevisionBuildParameters>
<hudson.plugins.parameterizedtrigger.matrix.MatrixSubsetBuildParameters>
<filter>label==&quot;x86&quot;</filter>
</hudson.plugins.parameterizedtrigger.matrix.MatrixSubsetBuildParameters>
</configs>
<projects>yet_another_job</projects>
<condition>ALWAYS</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<org.jvnet.jenkins.plugins.nodelabelparameter.parameterizedtrigger.NodeLabelBuildParameter>
<name>foo</name>
<nodeLabel/>
</org.jvnet.jenkins.plugins.nodelabelparameter.parameterizedtrigger.NodeLabelBuildParameter>
</configs>
<projects>yet_another_job_2</projects>
<condition>ALWAYS</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<org.jvnet.jenkins.plugins.nodelabelparameter.parameterizedtrigger.NodeLabelBuildParameter>
<name/>
<nodeLabel>node-label-foo || node-label-bar</nodeLabel>
</org.jvnet.jenkins.plugins.nodelabelparameter.parameterizedtrigger.NodeLabelBuildParameter>
</configs>
<projects>yet_another_job_3</projects>
<condition>ALWAYS</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.CurrentBuildParameters/>
<hudson.plugins.parameterizedtrigger.NodeParameters/>
</configs>
<projects>test-project-same-node</projects>
<condition>ALWAYS</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
</configs>
</hudson.plugins.parameterizedtrigger.BuildTrigger>
</publishers>
</project>

View File

@ -40,4 +40,3 @@
</hudson.plugins.parameterizedtrigger.BuildTrigger>
</publishers>
</project>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<scm class="org.jenkinsci.plugins.multiplescms.MultiSCM">
<scm class="org.jenkinsci.plugins.multiplescms.MultiSCM">
<scms>
<scm class="hudson.plugins.git.GitSCM">
<configVersion>2</configVersion>

View File

@ -4,12 +4,12 @@
<org.jenkinsci.plugins.ghprb.GhprbTrigger>
<spec>* * * * *</spec>
<adminlist>user1
user2</adminlist>
user2</adminlist>
<allowMembersOfWhitelistedOrgsAsAdmin>true</allowMembersOfWhitelistedOrgsAsAdmin>
<whitelist>user3
user4</whitelist>
user4</whitelist>
<orgslist>org1
org2</orgslist>
org2</orgslist>
<cron>* * * * *</cron>
<triggerPhrase>retest this please</triggerPhrase>
<onlyTriggerPhrase>true</onlyTriggerPhrase>

View File

@ -2,29 +2,29 @@
<project>
<buildWrappers>
<org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper>
<bindings>
<org.jenkinsci.plugins.credentialsbinding.impl.ZipFileBinding>
<variable>CONFIG_ZIP</variable>
<credentialsId>b3e6f337-5d44-4f57-921c-1632d796caa6</credentialsId>
</org.jenkinsci.plugins.credentialsbinding.impl.ZipFileBinding>
<org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<variable>config_file</variable>
<credentialsId>b3e6f337-5d44-4f57-921c-1632d796caab</credentialsId>
</org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordBinding>
<variable>config_username_password</variable>
<credentialsId>b3e6f337-5d44-4f57-921c-1632d796caac</credentialsId>
</org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordBinding>
<org.jenkinsci.plugins.credentialsbinding.impl.StringBinding>
<variable>config_text</variable>
<credentialsId>b3e6f337-5d44-4f57-921c-1632d796caad</credentialsId>
</org.jenkinsci.plugins.credentialsbinding.impl.StringBinding>
<org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordMultiBinding>
<usernameVariable>myUsername</usernameVariable>
<passwordVariable>myPassword</passwordVariable>
<credentialsId>b3e6f337-5d44-4f57-921c-1632d796caae</credentialsId>
</org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordMultiBinding>
</bindings>
<bindings>
<org.jenkinsci.plugins.credentialsbinding.impl.ZipFileBinding>
<variable>CONFIG_ZIP</variable>
<credentialsId>b3e6f337-5d44-4f57-921c-1632d796caa6</credentialsId>
</org.jenkinsci.plugins.credentialsbinding.impl.ZipFileBinding>
<org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<variable>config_file</variable>
<credentialsId>b3e6f337-5d44-4f57-921c-1632d796caab</credentialsId>
</org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordBinding>
<variable>config_username_password</variable>
<credentialsId>b3e6f337-5d44-4f57-921c-1632d796caac</credentialsId>
</org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordBinding>
<org.jenkinsci.plugins.credentialsbinding.impl.StringBinding>
<variable>config_text</variable>
<credentialsId>b3e6f337-5d44-4f57-921c-1632d796caad</credentialsId>
</org.jenkinsci.plugins.credentialsbinding.impl.StringBinding>
<org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordMultiBinding>
<usernameVariable>myUsername</usernameVariable>
<passwordVariable>myPassword</passwordVariable>
<credentialsId>b3e6f337-5d44-4f57-921c-1632d796caae</credentialsId>
</org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordMultiBinding>
</bindings>
</org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper>
</buildWrappers>
</project>

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<buildWrappers>
<se.diabol.jenkins.pipeline.PipelineVersionContributor>
<versionTemplate>1.0.0-${BUILD_NUMBER}</versionTemplate>
<updateDisplayName>true</updateDisplayName>
</se.diabol.jenkins.pipeline.PipelineVersionContributor>
</buildWrappers>
</project>
<buildWrappers>
<se.diabol.jenkins.pipeline.PipelineVersionContributor>
<versionTemplate>1.0.0-${BUILD_NUMBER}</versionTemplate>
<updateDisplayName>true</updateDisplayName>
</se.diabol.jenkins.pipeline.PipelineVersionContributor>
</buildWrappers>
</project>

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<buildWrappers>
<se.diabol.jenkins.pipeline.PipelineVersionContributor>
<versionTemplate/>
<updateDisplayName>false</updateDisplayName>
</se.diabol.jenkins.pipeline.PipelineVersionContributor>
</buildWrappers>
</project>
<buildWrappers>
<se.diabol.jenkins.pipeline.PipelineVersionContributor>
<versionTemplate/>
<updateDisplayName>false</updateDisplayName>
</se.diabol.jenkins.pipeline.PipelineVersionContributor>
</buildWrappers>
</project>

View File

@ -2,8 +2,8 @@
<project>
<buildWrappers>
<com.lookout.jenkins.EnvironmentScript>
<script>echo foo=bar</script>
<onlyRunOnParent>true</onlyRunOnParent>
<script>echo foo=bar</script>
<onlyRunOnParent>true</onlyRunOnParent>
</com.lookout.jenkins.EnvironmentScript>
</buildWrappers>
</project>

View File

@ -2,9 +2,9 @@
<project>
<buildWrappers>
<hudson.plugins.logfilesizechecker.LogfilesizecheckerWrapper plugin="logfilesizechecker">
<setOwn>true</setOwn>
<maxLogSize>1024</maxLogSize>
<failBuild>true</failBuild>
<setOwn>true</setOwn>
<maxLogSize>1024</maxLogSize>
<failBuild>true</failBuild>
</hudson.plugins.logfilesizechecker.LogfilesizecheckerWrapper>
</buildWrappers>
</project>

View File

@ -2,9 +2,9 @@
<project>
<buildWrappers>
<hudson.plugins.logfilesizechecker.LogfilesizecheckerWrapper plugin="logfilesizechecker">
<setOwn>false</setOwn>
<maxLogSize>128</maxLogSize>
<failBuild>false</failBuild>
<setOwn>false</setOwn>
<maxLogSize>128</maxLogSize>
<failBuild>false</failBuild>
</hudson.plugins.logfilesizechecker.LogfilesizecheckerWrapper>
</buildWrappers>
</project>

View File

@ -2,9 +2,9 @@
<project>
<buildWrappers>
<hudson.plugins.logfilesizechecker.LogfilesizecheckerWrapper plugin="logfilesizechecker">
<setOwn>true</setOwn>
<maxLogSize>2048</maxLogSize>
<failBuild>false</failBuild>
<setOwn>true</setOwn>
<maxLogSize>2048</maxLogSize>
<failBuild>false</failBuild>
</hudson.plugins.logfilesizechecker.LogfilesizecheckerWrapper>
</buildWrappers>
</project>

View File

@ -1,18 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<buildWrappers>
<org.jenkinsci.plugins.xvfb.XvfbBuildWrapper>
<installationName>default</installationName>
<autoDisplayName>false</autoDisplayName>
<displayName>123</displayName>
<assignedLabels>nodes-xxx</assignedLabels>
<parallelBuild>false</parallelBuild>
<timeout>10</timeout>
<screen>1024x768x16</screen>
<displayNameOffset>100</displayNameOffset>
<additionalOptions>-fbdir /tmp</additionalOptions>
<debug>true</debug>
<shutdownWithBuild>false</shutdownWithBuild>
</org.jenkinsci.plugins.xvfb.XvfbBuildWrapper>
</buildWrappers>
<buildWrappers>
<org.jenkinsci.plugins.xvfb.XvfbBuildWrapper>
<installationName>default</installationName>
<autoDisplayName>false</autoDisplayName>
<displayName>123</displayName>
<assignedLabels>nodes-xxx</assignedLabels>
<parallelBuild>false</parallelBuild>
<timeout>10</timeout>
<screen>1024x768x16</screen>
<displayNameOffset>100</displayNameOffset>
<additionalOptions>-fbdir /tmp</additionalOptions>
<debug>true</debug>
<shutdownWithBuild>false</shutdownWithBuild>
</org.jenkinsci.plugins.xvfb.XvfbBuildWrapper>
</buildWrappers>
</project>

View File

@ -48,4 +48,4 @@
reporters:
- raw:
xml:
<reportersraw/>
<reportersraw/>

View File

@ -20,7 +20,7 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<actions/>
<actions/>
<description>my project description&lt;!-- Managed by Jenkins Job Builder --&gt;</description>
<keepDependencies>false</keepDependencies>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>

View File

@ -26,6 +26,7 @@
<publishers/>
<buildWrappers/>
</matrix-project>
<?xml version="1.0" encoding="utf-8"?>
<matrix-project>
<executionStrategy class="hudson.matrix.DefaultMatrixExecutionStrategyImpl">
@ -54,6 +55,7 @@
<publishers/>
<buildWrappers/>
</matrix-project>
<?xml version="1.0" encoding="utf-8"?>
<matrix-project>
<executionStrategy class="hudson.matrix.DefaultMatrixExecutionStrategyImpl">

View File

@ -20,6 +20,7 @@ print(&quot;Doing something cool with python&quot;)
<publishers/>
<buildWrappers/>
</project>
<?xml version="1.0" encoding="utf-8"?>
<project>
<actions/>
@ -42,6 +43,7 @@ print(&quot;Doing something cool with python&quot;)
<publishers/>
<buildWrappers/>
</project>
<?xml version="1.0" encoding="utf-8"?>
<project>
<actions/>
@ -64,6 +66,7 @@ print(&quot;Doing something else cool with python&quot;)
<publishers/>
<buildWrappers/>
</project>
<?xml version="1.0" encoding="utf-8"?>
<project>
<actions/>

View File

@ -40,6 +40,7 @@
</publishers>
<buildWrappers/>
</project>
<?xml version="1.0" encoding="utf-8"?>
<project>
<actions/>

View File

@ -23,6 +23,7 @@
</publishers>
<buildWrappers/>
</project>
<?xml version="1.0" encoding="utf-8"?>
<project>
<actions/>