Merge "Serialize combine-queued-commits for git-revision"

This commit is contained in:
Jenkins 2016-04-26 18:20:15 +00:00 committed by Gerrit Code Review
commit 1484c6ee0a
14 changed files with 125 additions and 16 deletions

View File

@ -43,6 +43,7 @@ from jenkins_jobs.errors import InvalidAttributeError
from jenkins_jobs.errors import JenkinsJobsException
from jenkins_jobs.errors import MissingAttributeError
import jenkins_jobs.modules.base
from jenkins_jobs.modules.helpers import append_git_revision_config
from jenkins_jobs.modules.helpers import cloudformation_init
from jenkins_jobs.modules.helpers import cloudformation_region_dict
from jenkins_jobs.modules.helpers import cloudformation_stack
@ -382,8 +383,11 @@ def trigger_builds(parser, xml_parent, data):
Plugin (optional)
:arg bool svn-revision: Whether to pass the svn revision to the triggered
job (optional)
:arg bool git-revision: Whether to pass the git revision to the triggered
job (optional)
:arg dict git-revision: Passes git revision to the triggered job
(optional).
* **combine-queued-commits** (bool): Whether to combine queued git
hashes or not (default false)
:arg bool block: whether to wait for the triggered jobs to finish or not
(default false)
:arg dict block-thresholds: Fail builds and/or mark as failed or unstable
@ -485,12 +489,10 @@ def trigger_builds(parser, xml_parent, data):
XML.SubElement(tconfigs,
'hudson.plugins.parameterizedtrigger.'
'SubversionRevisionBuildParameters')
if(project_def.get('git-revision')):
params = XML.SubElement(tconfigs,
'hudson.plugins.git.'
'GitRevisionBuildParameters')
combine = XML.SubElement(params, 'combineQueuedCommits')
combine.text = 'false'
append_git_revision_config(tconfigs, project_def['git-revision'])
if(project_def.get('same-node')):
XML.SubElement(tconfigs,
'hudson.plugins.parameterizedtrigger.'

View File

@ -426,6 +426,21 @@ def artifactory_repository(xml_parent, data, target):
data.get('deploy-dynamic-mode', False)).lower()
def append_git_revision_config(parent, config_def):
params = XML.SubElement(
parent, 'hudson.plugins.git.GitRevisionBuildParameters')
try:
# If git-revision is a boolean, the get() will
# throw an AttributeError
combine_commits = str(
config_def.get('combine-queued-commits', False)).lower()
except AttributeError:
combine_commits = 'false'
XML.SubElement(params, 'combineQueuedCommits').text = combine_commits
def convert_mapping_to_xml(parent, data, mapping, fail_required=False):
"""Convert mapping to XML

View File

@ -38,6 +38,7 @@ from jenkins_jobs.errors import JenkinsJobsException
from jenkins_jobs.errors import MissingAttributeError
import jenkins_jobs.modules.base
from jenkins_jobs.modules import hudson_model
from jenkins_jobs.modules.helpers import append_git_revision_config
from jenkins_jobs.modules.helpers import artifactory_common_details
from jenkins_jobs.modules.helpers import artifactory_deployment_patterns
from jenkins_jobs.modules.helpers import artifactory_env_vars_patterns
@ -350,9 +351,18 @@ def trigger_parameterized_builds(parser, xml_parent, data):
:arg bool svn-revision: Pass svn revision to the triggered job (optional)
:arg bool include-upstream: Include/pass through Upstream SVN Revisons.
Only valid when 'svn-revision' is true. (default false)
:arg bool git-revision: Pass git revision to the other job (optional)
:arg dict git-revision: Passes git revision to the triggered job
(optional).
* **combine-queued-commits** (bool): Whether to combine queued git
hashes or not (default false)
:arg bool combine-queued-commits: Combine Queued git hashes. Only valid
when 'git-revision' is true. (default false)
.. deprecated:: 1.4.0. Please use `combine-queued-commits` under the
`git-revision` argument instead.
:arg dict boolean-parameters: Pass boolean parameters to the downstream
jobs. Specify the name and boolean value mapping of the parameters.
(optional)
@ -446,11 +456,19 @@ def trigger_parameterized_builds(parser, xml_parent, data):
properties = XML.SubElement(params, 'properties')
properties.text = param_value
elif param_type == 'git-revision' and param_value:
params = XML.SubElement(tconfigs,
'hudson.plugins.git.'
'GitRevisionBuildParameters')
XML.SubElement(params, 'combineQueuedCommits').text = str(
project_def.get('combine-queued-commits', False)).lower()
if 'combine-queued-commits' in project_def:
logger.warn(
"'combine-queued-commit' has moved to reside under "
"'git-revision' configuration, please update your "
"configs as support for this will be removed."
)
git_revision = {
'combine-queued-commits':
project_def['combine-queued-commits']
}
else:
git_revision = project_def['git-revision']
append_git_revision_config(tconfigs, git_revision)
elif param_type == 'property-file':
params = XML.SubElement(tconfigs,
pt_prefix + 'FileBuildParameters')

View File

@ -5,6 +5,9 @@
<configs>
<hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
<configs>
<hudson.plugins.git.GitRevisionBuildParameters>
<combineQueuedCommits>true</combineQueuedCommits>
</hudson.plugins.git.GitRevisionBuildParameters>
<hudson.plugins.parameterizedtrigger.FileBuildParameters>
<propertiesFile>propfile.txt</propertiesFile>
<failTriggerOnMissing>true</failTriggerOnMissing>

View File

@ -1,6 +1,8 @@
builders:
- trigger-builds:
- project: "build_started"
git-revision:
combine-queued-commits: true
property-file: propfile.txt
block: true
block-thresholds:

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<builders>
<hudson.plugins.parameterizedtrigger.TriggerBuilder>
<configs>
<hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
<configs class="java.util.Collections$EmptyList"/>
<projects>build_started</projects>
<condition>ALWAYS</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
<buildAllNodesWithLabel>false</buildAllNodesWithLabel>
</hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
</configs>
</hudson.plugins.parameterizedtrigger.TriggerBuilder>
</builders>
</project>

View File

@ -0,0 +1,4 @@
builders:
- trigger-builds:
- project: "build_started"
git-revision: false

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.parameterizedtrigger.BuildTrigger>
<configs>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs class="java.util.Collections$EmptyList"/>
<projects>fixture</projects>
<condition>SUCCESS</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
</configs>
</hudson.plugins.parameterizedtrigger.BuildTrigger>
</publishers>
</project>

View File

@ -0,0 +1,4 @@
publishers:
- trigger-parameterized-builds:
- project: 'fixture'
condition: SUCCESS

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.parameterizedtrigger.BuildTrigger>
<configs>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<hudson.plugins.git.GitRevisionBuildParameters>
<combineQueuedCommits>true</combineQueuedCommits>
</hudson.plugins.git.GitRevisionBuildParameters>
</configs>
<projects>fixture</projects>
<condition>SUCCESS</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
</configs>
</hudson.plugins.parameterizedtrigger.BuildTrigger>
</publishers>
</project>

View File

@ -0,0 +1,6 @@
publishers:
- trigger-parameterized-builds:
- project: 'fixture'
condition: SUCCESS
git-revision:
combine-queued-commits: true

View File

@ -20,6 +20,9 @@ bar=foo
<hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
<properties>BUILD_NUM=${BUILD_NUMBER}</properties>
</hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
<hudson.plugins.git.GitRevisionBuildParameters>
<combineQueuedCommits>false</combineQueuedCommits>
</hudson.plugins.git.GitRevisionBuildParameters>
<hudson.plugins.parameterizedtrigger.FileBuildParameters>
<propertiesFile>version.prop</propertiesFile>
<failTriggerOnMissing>true</failTriggerOnMissing>
@ -35,7 +38,7 @@ bar=foo
<properties>foo=bar</properties>
</hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
<hudson.plugins.git.GitRevisionBuildParameters>
<combineQueuedCommits>false</combineQueuedCommits>
<combineQueuedCommits>true</combineQueuedCommits>
</hudson.plugins.git.GitRevisionBuildParameters>
<hudson.plugins.parameterizedtrigger.matrix.MatrixSubsetBuildParameters>
<filter>label==&quot;x86&quot;</filter>

View File

@ -9,11 +9,13 @@ publishers:
bar=foo
- project: other_job1, other_job2
predefined-parameters: BUILD_NUM=${BUILD_NUMBER}
git-revision: true
property-file: version.prop
fail-on-missing: true
- project: yet_another_job
predefined-parameters: foo=bar
git-revision: true
git-revision:
combine-queued-commits: true
restrict-matrix-project: label=="x86"
- project: yet_another_job_2
node-label-name: foo

View File

@ -36,4 +36,4 @@
</configs>
</hudson.plugins.parameterizedtrigger.BuildTrigger>
</publishers>
</project>
</project>