Merge lp:~fginther/cupstream2distro-config/mbs-rebuild-support into lp:cupstream2distro-config

Proposed by Francis Ginther
Status: Merged
Approved by: Martin Mrazik
Approved revision: 304
Merged at revision: 361
Proposed branch: lp:~fginther/cupstream2distro-config/mbs-rebuild-support
Merge into: lp:cupstream2distro-config
Diff against target: 1219 lines (+552/-112)
10 files modified
c2dconfigutils/cu2dUpdateCi.py (+65/-13)
ci/jenkins-templates/mbs-autolanding-config.xml.tmpl (+20/-13)
ci/jenkins-templates/mbs-pbuilder-config.xml.tmpl (+8/-11)
ci/jenkins-templates/mbs-rebuild-config.xml.tmpl (+274/-0)
stacks/head/mir.cfg (+19/-7)
stacks/head/oif.cfg (+9/-5)
stacks/head/unity.cfg (+24/-21)
stacks/raring/oif.cfg (+10/-5)
stacks/raring/unity.cfg (+26/-23)
tests/test_cu2dUpdateCi.py (+97/-14)
To merge this branch: bzr merge lp:~fginther/cupstream2distro-config/mbs-rebuild-support
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Approve
Martin Mrazik (community) Approve
Review via email: mp+165698@code.launchpad.net

Commit message

Enables Meta-Build System rebuilds of downstream projects after autolanding the current project.

This includes:
 - A new mbs-rebuild template to define the parent rebuild jobs, the autolanding jobs are reused as the builder jobs.
 - Updates to the mbs templates to reduce the number of jenkins parameters created.
 - A new archive directory structure to support automatic archive naming from the stack name in the future.
 - New MBS support for the head/mir stack
 - Updates to the oif and unity stacks to use this new method

Description of the change

Enables Meta-Build System rebuilds of downstream projects after autolanding the current project.

This includes:
 - A new mbs-rebuild template to define the parent rebuild jobs, the autolanding jobs are reused as the builder jobs.
 - Updates to the mbs templates to reduce the number of jenkins parameters created.
 - A new archive directory structure to support automatic archive naming from the stack name in the future.
 - New MBS support for the head/mir stack
 - Updates to the oif and unity stacks to use this new method

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Martin Mrazik (mrazik) wrote :

Can we strip whitespace from rebuild_job in here (in case somebody specifies rebuild like "job1, job2")?:

46 + for rebuild_job in data.split(','):
47 + rebuild_list.append('-'.join([rebuild_job, 'rebuild']))
48 + ctx['rebuild'] = ','.join(rebuild_list)

The following (needs info only):
795 + rebuild: grail-raring

Would it be too hard to specify only "grail" and the update tool would check the current stack and find out there is a "grail-raring" base job? If it would be too hard maybe we can create a check in the validator for it? This feels a bit error prone/not obvious to me.

Other than that looks good.

review: Needs Fixing
Revision history for this message
Francis Ginther (fginther) wrote :

> Can we strip whitespace from rebuild_job in here (in case somebody specifies
> rebuild like "job1, job2")?:
>
> 46 + for rebuild_job in data.split(','):
> 47 + rebuild_list.append('-'.join([rebuild_job,
> 'rebuild']))
> 48 + ctx['rebuild'] = ','.join(rebuild_list)

Done (revision 298)

> The following (needs info only):
> 795 + rebuild: grail-raring
>
> Would it be too hard to specify only "grail" and the update tool would check
> the current stack and find out there is a "grail-raring" base job? If it would
> be too hard maybe we can create a check in the validator for it? This feels a
> bit error prone/not obvious to me.

I originally thought this was going to be hard, so I left it out. But after taking a second look, I found a way to make it work (revision 300). Now, the user just needs to specify the project name to rebuild if it exists in the same stack. If it's not found, it's treated as an actual rebuild job name.

> Other than that looks good.

Revision history for this message
Martin Mrazik (mrazik) :
review: Approve
Revision history for this message
Francis Ginther (fginther) wrote :

Revision 301 added the ability to update the ppa_target when a rebuild occurs. This is only done when both the 'ppa_target' and 'distributions' values are set. The old MBS jobs did this, it was just an oversight. Projects that don't have a ppa_target will still be rebuilt using the local archive.

Revision 302 and 303 updated the mir rebuild targets at the request of thomi.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'c2dconfigutils/cu2dUpdateCi.py'
--- c2dconfigutils/cu2dUpdateCi.py 2013-05-22 13:12:26 +0000
+++ c2dconfigutils/cu2dUpdateCi.py 2013-05-29 14:11:26 +0000
@@ -61,24 +61,28 @@
61 'concurrent_jenkins_builds',61 'concurrent_jenkins_builds',
62 'configuration',62 'configuration',
63 'contact_email',63 'contact_email',
64 'days_to_keep_builds',
64 'disabled',65 'disabled',
65 'fasttrack',66 'fasttrack',
66 'hook_source',67 'hook_source',
68 'irc_notification',
69 'irc_channel',
67 'landing_job',70 'landing_job',
71 'local_archive_host',
72 'local_archive_login',
73 'local_archive_tmp',
74 'log_rotator',
68 'node_label',75 'node_label',
76 'num_to_keep_builds',
69 'parallel_jobs',77 'parallel_jobs',
70 'postbuild_job',78 'postbuild_job',
71 'publish',79 'publish',
72 'publish_coverage',80 'publish_coverage',
73 'publish_junit',81 'publish_junit',
74 'priority',82 'priority',
83 'rebuild',
75 'team',84 'team',
76 'use_description_for_commit',85 'use_description_for_commit',
77 'log_rotator',
78 'days_to_keep_builds',
79 'num_to_keep_builds',
80 'irc_notification',
81 'irc_channel',
82 ]86 ]
8387
84 DEFAULT_HOOK_LOCATION = '/tmp/$JOB_NAME-hooks'88 DEFAULT_HOOK_LOCATION = '/tmp/$JOB_NAME-hooks'
@@ -139,6 +143,22 @@
139 parameter = JobParameter(name, value)143 parameter = JobParameter(name, value)
140 ctx['parameter_list'].append(parameter)144 ctx['parameter_list'].append(parameter)
141145
146 def get_rebuild_job(self, stack, project_name):
147 """ Generates the rebuild job name for a project
148
149 :param stack: the original stack dictionary
150 :param project_name: the project name to lookup
151 :return job_name: the rebuild job name for the requested project
152 """
153 try:
154 project = stack['projects'][project_name]
155 job_name = '{}-rebuild'.format(
156 get_ci_base_job_name(project_name, project))
157 except KeyError:
158 # Allow for a user specified rebuild job
159 job_name = project_name
160 return job_name
161
142 def process_project_config(self, project_name, project_config,162 def process_project_config(self, project_name, project_config,
143 job_data, builder_job=False):163 job_data, builder_job=False):
144 """ Generates the template context from a project configuration164 """ Generates the template context from a project configuration
@@ -203,6 +223,16 @@
203 script = self._get_build_script(self.AGGREGATE_TESTS_TEMPLATE,223 script = self._get_build_script(self.AGGREGATE_TESTS_TEMPLATE,
204 formatting)224 formatting)
205 ctx['aggregate_tests_script'] = script225 ctx['aggregate_tests_script'] = script
226 elif key == 'rebuild':
227 # Only support manually specified rebuild jobs
228 if data:
229 rebuild_list = []
230 for rebuild_project in data.split(','):
231 rebuild_job = self.get_rebuild_job(
232 job_data['stack'], rebuild_project.strip())
233 rebuild_list.append(rebuild_job)
234 ctx['rebuild'] = ','.join(rebuild_list)
235
206 elif key in self.TEMPLATE_CONTEXT_KEYS:236 elif key in self.TEMPLATE_CONTEXT_KEYS:
207 # These are added as ctx keys only237 # These are added as ctx keys only
208 ctx[key] = data238 ctx[key] = data
@@ -227,13 +257,14 @@
227 self.add_parameter(ctx, 'project_name', project_name)257 self.add_parameter(ctx, 'project_name', project_name)
228 return ctx258 return ctx
229259
230 def generate_jobs(self, job_list, project_name, job_type, job_config,260 def generate_jobs(self, job_list, project_name, job_type, build_type,
231 job_template, build_template, job_data):261 job_config, job_template, build_template, job_data):
232 """ Generates the main job and builder jobs for a given project262 """ Generates the main job and builder jobs for a given project
233263
234 :param job_list: list to hold the generated jobs264 :param job_list: list to hold the generated jobs
235 :param project_name: the project name from the stack definition265 :param project_name: the project name from the stack definition
236 :param job_type: 'ci' or 'autolanding'266 :param job_type: parent job - 'ci', 'autolanding' or 'rebuild'
267 :param build_type: builder job - 'ci' or 'autolanding'
237 :param job_config: dictionary containing the job definition268 :param job_config: dictionary containing the job definition
238 :param job_template: template used to define the main job269 :param job_template: template used to define the main job
239 :param build_template: template used to define the build jobs270 :param build_template: template used to define the build jobs
@@ -266,13 +297,17 @@
266 build_list.append(config_name)297 build_list.append(config_name)
267298
268 else:299 else:
300 build_name = '-'.join([job_base_name, config_name,
301 build_type])
302 build_list.append(build_name)
303 if job_type == 'rebuild':
304 # For rebuild jobs, the autolanding builder jobs will
305 # be reused. So all that is needed is the build_list.
306 continue
269 dict_union(build_config, data)307 dict_union(build_config, data)
270 ctx = self.process_project_config(project_name,308 ctx = self.process_project_config(project_name,
271 build_config, job_data,309 build_config, job_data,
272 builder_job=True)310 builder_job=True)
273 build_name = '-'.join([job_base_name, config_name,
274 job_type])
275 build_list.append(build_name)
276 job_data['build_lookup'][config_name] = build_name311 job_data['build_lookup'][config_name] = build_name
277 job_list.append({'name': build_name,312 job_list.append({'name': build_name,
278 'template': template,313 'template': template,
@@ -297,7 +332,8 @@
297 stack_ppa = stack.get('ppa', False)332 stack_ppa = stack.get('ppa', False)
298 if stack_ppa == "null":333 if stack_ppa == "null":
299 stack_ppa = False334 stack_ppa = False
300 job_data = {'stack_ppa': stack_ppa}335 job_data = {'stack': stack,
336 'stack_ppa': stack_ppa}
301337
302 # Merge the default config with the project specific config338 # Merge the default config with the project specific config
303 project_config = copy.deepcopy(stack['ci_default'])339 project_config = copy.deepcopy(stack['ci_default'])
@@ -305,8 +341,10 @@
305341
306 ci_template = None342 ci_template = None
307 autolanding_template = None343 autolanding_template = None
344 rebuild_template = None
308 ci_only_dict = dict()345 ci_only_dict = dict()
309 autolanding_only_dict = dict()346 autolanding_only_dict = dict()
347 rebuild_only_dict = dict()
310348
311 # Extract the ci, autolanding or build specific items to make the349 # Extract the ci, autolanding or build specific items to make the
312 # project configuration purely generic.350 # project configuration purely generic.
@@ -314,10 +352,13 @@
314 ci_only_dict = project_config.pop('ci')352 ci_only_dict = project_config.pop('ci')
315 if 'autolanding' in project_config:353 if 'autolanding' in project_config:
316 autolanding_only_dict = project_config.pop('autolanding')354 autolanding_only_dict = project_config.pop('autolanding')
355 rebuild_only_dict = copy.deepcopy(autolanding_only_dict)
317 if 'ci_template' in project_config:356 if 'ci_template' in project_config:
318 ci_template = project_config.pop('ci_template')357 ci_template = project_config.pop('ci_template')
319 if 'autolanding_template' in project_config:358 if 'autolanding_template' in project_config:
320 autolanding_template = project_config.pop('autolanding_template')359 autolanding_template = project_config.pop('autolanding_template')
360 if 'rebuild_template' in project_config:
361 rebuild_template = project_config.pop('rebuild_template')
321 if 'build_template' in project_config:362 if 'build_template' in project_config:
322 build_template = project_config.pop('build_template')363 build_template = project_config.pop('build_template')
323364
@@ -326,7 +367,7 @@
326 ci_dict = copy.deepcopy(project_config)367 ci_dict = copy.deepcopy(project_config)
327 if ci_only_dict is not None:368 if ci_only_dict is not None:
328 dict_union(ci_dict, ci_only_dict)369 dict_union(ci_dict, ci_only_dict)
329 self.generate_jobs(job_list, project_name, 'ci', ci_dict,370 self.generate_jobs(job_list, project_name, 'ci', 'ci', ci_dict,
330 ci_template, build_template, job_data)371 ci_template, build_template, job_data)
331372
332 # Create autolanding job, add back in the autolanding dict373 # Create autolanding job, add back in the autolanding dict
@@ -335,9 +376,20 @@
335 if autolanding_only_dict is not None:376 if autolanding_only_dict is not None:
336 dict_union(autolanding_dict, autolanding_only_dict)377 dict_union(autolanding_dict, autolanding_only_dict)
337 self.generate_jobs(job_list, project_name, 'autolanding',378 self.generate_jobs(job_list, project_name, 'autolanding',
379 'autolanding',
338 autolanding_dict, autolanding_template,380 autolanding_dict, autolanding_template,
339 build_template, job_data)381 build_template, job_data)
340382
383 # Create rebuild job, add in the rebuild dict
384 if rebuild_template:
385 rebuild_dict = copy.deepcopy(project_config)
386 if rebuild_only_dict is not None:
387 dict_union(rebuild_dict, rebuild_only_dict)
388 self.generate_jobs(job_list, project_name, 'rebuild',
389 'autolanding',
390 rebuild_dict, rebuild_template,
391 build_template, job_data)
392
341 def process_stack(self, job_list, stack, target_project=None):393 def process_stack(self, job_list, stack, target_project=None):
342 """ Process the projects with the stack394 """ Process the projects with the stack
343395
344396
=== modified file 'ci/jenkins-templates/mbs-autolanding-config.xml.tmpl'
--- ci/jenkins-templates/mbs-autolanding-config.xml.tmpl 2013-04-26 16:04:38 +0000
+++ ci/jenkins-templates/mbs-autolanding-config.xml.tmpl 2013-05-29 14:11:26 +0000
@@ -54,7 +54,7 @@
54 <configs>54 <configs>
55 <hudson.plugins.parameterizedtrigger.CurrentBuildParameters/>55 <hudson.plugins.parameterizedtrigger.CurrentBuildParameters/>
56 <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>56 <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
57 <properties>UPSTREAM_BUILD_NUMBER=$BUILD_NUMBER</properties>57 <properties>temp_dir={{ local_archive_tmp }}/${local_archive_name}/${project_name}.${BUILD_NUMBER}.autolanding</properties>
58 </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>58 </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
59 </configs>59 </configs>
60 <projects>{{ builder_list }}</projects>60 <projects>{{ builder_list }}</projects>
@@ -85,14 +85,12 @@
85 <command>#!/bin/bash85 <command>#!/bin/bash
86set -x86set -x
8787
88temp_dir=${local_archive_tmp}/${project_name}-al-${local_archive_pocket}-${BUILD_NUMBER}88temp_dir={{ local_archive_tmp }}/${local_archive_name}/${project_name}.${BUILD_NUMBER}.autolanding
89ppa_build_number=${BUILD_NUMBER}89
9090for p in `ssh {{ local_archive_login }}@{{ local_archive_host }} ls ${temp_dir}`; do
9191 ssh {{ local_archive_login }}@{{ local_archive_host }} dput -ufU --config /home/ubuntu/.dput.cf ${local_archive_name} ${temp_dir}/${p}/*.changes
92for p in `ssh ${local_archive_login}@${local_archive_host} ls ${temp_dir}`; do
93 ssh ${local_archive_login}@${local_archive_host} dput -ufU --config /home/ubuntu/.dput.cf ${local_archive} ${temp_dir}/${p}/*.changes
94 # Execute mini-dinstall to update the local archive92 # Execute mini-dinstall to update the local archive
95 ssh ${local_archive_login}@${local_archive_host} mini-dinstall --no-db --batch --config=&quot;/home/ubuntu/.mini-dinstall-${local_archive}.conf&quot;93 ssh {{ local_archive_login }}@{{ local_archive_host }} mini-dinstall --no-db --batch --config=&quot;/home/ubuntu/.mini-dinstall-${local_archive_name}.conf&quot;
96done</command>94done</command>
97 </hudson.tasks.Shell>95 </hudson.tasks.Shell>
98{% if aggregate_tests_script %}96{% if aggregate_tests_script %}
@@ -234,6 +232,15 @@
234{% endif %}232{% endif %}
235 <hudson.plugins.parameterizedtrigger.BuildTrigger>233 <hudson.plugins.parameterizedtrigger.BuildTrigger>
236 <configs>234 <configs>
235{% if rebuild %}
236 <hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
237 <configs>
238 </configs>
239 <projects>{{ rebuild }}</projects>
240 <condition>SUCCESS</condition>
241 <triggerWithNoParameters>true</triggerWithNoParameters>
242 </hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
243{% endif %}
237 <hudson.plugins.parameterizedtrigger.BuildTriggerConfig>244 <hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
238 <configs>245 <configs>
239 <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>246 <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
@@ -252,13 +259,13 @@
252 <hudson.plugins.parameterizedtrigger.BuildTriggerConfig>259 <hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
253 <configs>260 <configs>
254 <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>261 <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
255 <properties>local_archive_host=$local_archive_host262 <properties>local_archive_host={{ local_archive_host }}
256local_archive_login=$local_archive_login263local_archive_login={{ local_archive_login }}
257temp_dir=${local_archive_tmp}/${project}-al-${local_archive_pocket}-${BUILD_NUMBER}</properties>264temp_dir={{ local_archive_tmp }}/${local_archive_name}/${project_name}.${BUILD_NUMBER}.autolanding</properties>
258 </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>265 </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
259 </configs>266 </configs>
260 <projects>generic-cleanup-mbs-pt</projects>267 <projects>generic-cleanup-mbs</projects>
261 <condition>UNSTABLE_OR_WORSE</condition>268 <condition>ALWAYS</condition>
262 <triggerWithNoParameters>false</triggerWithNoParameters>269 <triggerWithNoParameters>false</triggerWithNoParameters>
263 </hudson.plugins.parameterizedtrigger.BuildTriggerConfig>270 </hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
264 </configs>271 </configs>
265272
=== modified file 'ci/jenkins-templates/mbs-pbuilder-config.xml.tmpl'
--- ci/jenkins-templates/mbs-pbuilder-config.xml.tmpl 2013-05-21 18:18:36 +0000
+++ ci/jenkins-templates/mbs-pbuilder-config.xml.tmpl 2013-05-29 14:11:26 +0000
@@ -26,8 +26,8 @@
26 <defaultValue></defaultValue>26 <defaultValue></defaultValue>
27 </hudson.model.StringParameterDefinition>27 </hudson.model.StringParameterDefinition>
28 <hudson.model.StringParameterDefinition>28 <hudson.model.StringParameterDefinition>
29 <name>UPSTREAM_BUILD_NUMBER</name>29 <name>temp_dir</name>
30 <description>Build number of the upstream job used in the tmp directory with the deb output</description>30 <description>Temporary directory to store the package artifacts</description>
31 <defaultValue></defaultValue>31 <defaultValue></defaultValue>
32 </hudson.model.StringParameterDefinition>32 </hudson.model.StringParameterDefinition>
33{% for parameter in parameter_list %}33{% for parameter in parameter_list %}
@@ -69,23 +69,20 @@
69 <hudson.tasks.Shell>69 <hudson.tasks.Shell>
70 <command>#!/bin/bash70 <command>#!/bin/bash
71set -x71set -x
7272if [ -z &quot;${temp_dir}&quot; ]; then
73if [ -z &quot;${autolanding}&quot; ]; then73 # Build was not triggered by autolanding or rebuild, don't save build artifacts
74 # Build was not triggered by autolanding, don't save the build artifacts
75 exit 074 exit 0
76fi75fi
7776
78tmp_dir=&quot;${local_archive_tmp}/${project_name}-al-${local_archive_pocket}-${UPSTREAM_BUILD_NUMBER}&quot;77# mkdir &quot;${temp_dir}&quot; can fail due to multiple jobs attempting to create the directory
7978ssh {{ local_archive_login }}@{{ local_archive_host }} mkdir &quot;${temp_dir}&quot; || true
80# mkdir &quot;${tmp_dir}&quot; can fail due to multiple jobs attempting to create the directory79ssh {{ local_archive_login }}@{{ local_archive_host }} mkdir &quot;${temp_dir}/${JOB_NAME}&quot;
81ssh ${local_archive_login}@${local_archive_host} mkdir &quot;${tmp_dir}&quot; || true
82ssh ${local_archive_login}@${local_archive_host} mkdir &quot;${tmp_dir}/${JOB_NAME}&quot;
8380
84# Switch to the output directory containing the build results81# Switch to the output directory containing the build results
85cd work/output82cd work/output
8683
87# Copy the build results to the temporary holding area, if all jobs succeed, these will be dput into the ppa archive.84# Copy the build results to the temporary holding area, if all jobs succeed, these will be dput into the ppa archive.
88scp * ${local_archive_login}@${local_archive_host}:${tmp_dir}/${JOB_NAME}</command>85scp * {{ local_archive_login }}@{{ local_archive_host }}:${temp_dir}/${JOB_NAME}</command>
89 </hudson.tasks.Shell>86 </hudson.tasks.Shell>
90 </builders>87 </builders>
91 <publishers>88 <publishers>
9289
=== added file 'ci/jenkins-templates/mbs-rebuild-config.xml.tmpl'
--- ci/jenkins-templates/mbs-rebuild-config.xml.tmpl 1970-01-01 00:00:00 +0000
+++ ci/jenkins-templates/mbs-rebuild-config.xml.tmpl 2013-05-29 14:11:26 +0000
@@ -0,0 +1,274 @@
1<?xml version='1.0' encoding='UTF-8'?>
2<project>
3 <actions/>
4 <description>&lt;B&gt;WARNING:&lt;/B&gt; This job is autogenerated. Any changes to the configuration will be lost.&lt;BR&gt;&#xd;
5&lt;B&gt;PURPOSE:&lt;/B&gt; Autolanding job for {{ target_branch }}&lt;BR&gt;&#xd;
6&lt;B&gt;TEAM:&lt;/B&gt; {{ team }}&lt;BR&gt;&#xd;
7&lt;B&gt;POC:&lt;/B&gt; {{ contact_email }}&lt;BR&gt;&#xd;</description>
8{% if log_rotator %}
9 <logRotator>
10 <daysToKeep>{{ log_rotator.days_to_keep_builds }}</daysToKeep>
11 <numToKeep>{{ log_rotator.num_to_keep_builds }}</numToKeep>
12 <artifactDaysToKeep>-1</artifactDaysToKeep>
13 <artifactNumToKeep>-1</artifactNumToKeep>
14 </logRotator>
15{% endif %}
16 <keepDependencies>false</keepDependencies>
17 <properties>
18 <hudson.queueSorter.PrioritySorterJobProperty>
19 <priority>{{ priority }}</priority>
20 </hudson.queueSorter.PrioritySorterJobProperty>
21 <hudson.model.ParametersDefinitionProperty>
22 <parameterDefinitions>
23 <hudson.model.StringParameterDefinition>
24 <name>autolanding</name>
25 <description>Specifies that this is an autolanding/merge job. Used to properly set package version string.</description>
26 <defaultValue></defaultValue>
27 </hudson.model.StringParameterDefinition>
28{% for parameter in parameter_list %}
29 <hudson.model.StringParameterDefinition>
30 <name>{{ parameter.name }}</name>
31 <description>{{ parameter.description }}</description>
32 <defaultValue>{{ parameter.value }}</defaultValue>
33 </hudson.model.StringParameterDefinition>
34{% endfor %}
35 <hudson.model.BooleanParameterDefinition>
36 <name>use_description_for_commit</name>
37 <description>If launchpad commit message is not set in Merge Proposal and you use &quot;usr_description_for_commit&quot; then the description will be used for the merge message (i.e. you will see launchpad description in your bzr log).</description>
38 <defaultValue>{{ use_description_for_commit }}</defaultValue>
39 </hudson.model.BooleanParameterDefinition>
40 </parameterDefinitions>
41 </hudson.model.ParametersDefinitionProperty>
42 </properties>
43 <scm class="hudson.scm.NullSCM"/>
44 <canRoam>true</canRoam>
45 <disabled>{{ disabled }}</disabled>
46 <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
47 <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
48 <triggers class="vector"/>
49 <concurrentBuild>false</concurrentBuild>
50 <builders>
51 <hudson.plugins.parameterizedtrigger.TriggerBuilder>
52 <configs>
53 <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
54 <configs>
55 <hudson.plugins.parameterizedtrigger.CurrentBuildParameters/>
56 <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
57 <properties>temp_dir={{ local_archive_tmp }}/${local_archive_name}/${project_name}.${BUILD_NUMBER}.rebuild
58landing_candidate=$target_branch</properties>
59 </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
60 </configs>
61 <projects>{{ builder_list }}</projects>
62 <condition>ALWAYS</condition>
63 <triggerWithNoParameters>false</triggerWithNoParameters>
64 <block>
65 <buildStepFailureThreshold>
66 <name>FAILURE</name>
67 <ordinal>2</ordinal>
68 <color>RED</color>
69 </buildStepFailureThreshold>
70 <unstableThreshold>
71 <name>UNSTABLE</name>
72 <ordinal>1</ordinal>
73 <color>YELLOW</color>
74 </unstableThreshold>
75 <failureThreshold>
76 <name>FAILURE</name>
77 <ordinal>2</ordinal>
78 <color>RED</color>
79 </failureThreshold>
80 </block>
81 <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
82 </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
83 </configs>
84 </hudson.plugins.parameterizedtrigger.TriggerBuilder>
85 <hudson.tasks.Shell>
86 <command>#!/bin/bash
87set -x
88
89temp_dir={{ local_archive_tmp }}/${local_archive_name}/${project_name}.${BUILD_NUMBER}.rebuild
90
91
92for p in `ssh {{ local_archive_login }}@{{ local_archive_host }} ls ${temp_dir}`; do
93 ssh {{ local_archive_login }}@{{ local_archive_host }} dput -ufU --config /home/ubuntu/.dput.cf ${local_archive_name} ${temp_dir}/${p}/*.changes
94 # Execute mini-dinstall to update the local archive
95 ssh {{ local_archive_login }}@{{ local_archive_host }} mini-dinstall --no-db --batch --config=&quot;/home/ubuntu/.mini-dinstall-${local_archive_name}.conf&quot;
96done</command>
97 </hudson.tasks.Shell>
98{% if aggregate_tests_script %}
99 <hudson.tasks.Shell>
100 <command>{{ aggregate_tests_script }}</command>
101 </hudson.tasks.Shell>
102{% endif %}
103{% if rebuild %}
104 <hudson.plugins.parameterizedtrigger.TriggerBuilder>
105 <configs>
106 <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
107 <configs>
108 </configs>
109 <projects>{{ rebuild }}</projects>
110 <condition>ALWAYS</condition>
111 <triggerWithNoParameters>false</triggerWithNoParameters>
112 <block>
113 <buildStepFailureThreshold>
114 <name>UNSTABLE</name>
115 <ordinal>1</ordinal>
116 <color>YELLOW</color>
117 </buildStepFailureThreshold>
118 <unstableThreshold>
119 <name>UNSTABLE</name>
120 <ordinal>1</ordinal>
121 <color>YELLOW</color>
122 </unstableThreshold>
123 <failureThreshold>
124 <name>FAILURE</name>
125 <ordinal>2</ordinal>
126 <color>RED</color>
127 </failureThreshold>
128 </block>
129 <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
130 </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
131 </configs>
132 </hudson.plugins.parameterizedtrigger.TriggerBuilder>
133{% endif %}
134 </builders>
135 <publishers>
136{% if aggregate_tests_script %}
137 {% if archive_artifacts %}
138 <hudson.tasks.ArtifactArchiver>
139 <artifacts>{{ archive_artifacts }}</artifacts>
140 <latestOnly>false</latestOnly>
141 </hudson.tasks.ArtifactArchiver>
142 {% endif %}
143 {% if publish_coverage %}
144 <hudson.plugins.cobertura.CoberturaPublisher>
145 <coberturaReportFile>{{ publish_coverage }}</coberturaReportFile>
146 <onlyStable>false</onlyStable>
147 <healthyTarget>
148 <targets class="enum-map" enum-type="hudson.plugins.cobertura.targets.CoverageMetric">
149 <entry>
150 <hudson.plugins.cobertura.targets.CoverageMetric>CONDITIONAL</hudson.plugins.cobertura.targets.CoverageMetric>
151 <int>70</int>
152 </entry>
153 <entry>
154 <hudson.plugins.cobertura.targets.CoverageMetric>LINE</hudson.plugins.cobertura.targets.CoverageMetric>
155 <int>80</int>
156 </entry>
157 <entry>
158 <hudson.plugins.cobertura.targets.CoverageMetric>METHOD</hudson.plugins.cobertura.targets.CoverageMetric>
159 <int>80</int>
160 </entry>
161 </targets>
162 </healthyTarget>
163 <unhealthyTarget>
164 <targets class="enum-map" enum-type="hudson.plugins.cobertura.targets.CoverageMetric">
165 <entry>
166 <hudson.plugins.cobertura.targets.CoverageMetric>CONDITIONAL</hudson.plugins.cobertura.targets.CoverageMetric>
167 <int>0</int>
168 </entry>
169 <entry>
170 <hudson.plugins.cobertura.targets.CoverageMetric>LINE</hudson.plugins.cobertura.targets.CoverageMetric>
171 <int>0</int>
172 </entry>
173 <entry>
174 <hudson.plugins.cobertura.targets.CoverageMetric>METHOD</hudson.plugins.cobertura.targets.CoverageMetric>
175 <int>0</int>
176 </entry>
177 </targets>
178 </unhealthyTarget>
179 <failingTarget>
180 <targets class="enum-map" enum-type="hudson.plugins.cobertura.targets.CoverageMetric">
181 <entry>
182 <hudson.plugins.cobertura.targets.CoverageMetric>CONDITIONAL</hudson.plugins.cobertura.targets.CoverageMetric>
183 <int>0</int>
184 </entry>
185 <entry>
186 <hudson.plugins.cobertura.targets.CoverageMetric>LINE</hudson.plugins.cobertura.targets.CoverageMetric>
187 <int>0</int>
188 </entry>
189 <entry>
190 <hudson.plugins.cobertura.targets.CoverageMetric>METHOD</hudson.plugins.cobertura.targets.CoverageMetric>
191 <int>0</int>
192 </entry>
193 </targets>
194 </failingTarget>
195 <sourceEncoding>ASCII</sourceEncoding>
196 </hudson.plugins.cobertura.CoberturaPublisher>
197 {% endif %}
198 {% if publish_junit %}
199 <hudson.tasks.junit.JUnitResultArchiver>
200 <testResults>{{ publish_junit }}</testResults>
201 <keepLongStdio>false</keepLongStdio>
202 <testDataPublishers/>
203 </hudson.tasks.junit.JUnitResultArchiver>
204 {% endif %}
205{% endif %}
206{% if contact_email %}
207 <hudson.tasks.Mailer>
208 <recipients>{{ contact_email }}</recipients>
209 <dontNotifyEveryUnstableBuild>false</dontNotifyEveryUnstableBuild>
210 <sendToIndividuals>false</sendToIndividuals>
211 </hudson.tasks.Mailer>
212{% endif %}
213{% if irc_channel and irc_notification %}
214 <hudson.plugins.ircbot.IrcPublisher>
215 <targets>
216 <hudson.plugins.im.GroupChatIMMessageTarget>
217 <name>{{ irc_channel }}</name>
218 <notificationOnly>true</notificationOnly>
219 </hudson.plugins.im.GroupChatIMMessageTarget>
220 </targets>
221 <strategy>{{ irc_notification }}</strategy>
222 <notifyOnBuildStart>false</notifyOnBuildStart>
223 <notifySuspects>false</notifySuspects>
224 <notifyCulprits>false</notifyCulprits>
225 <notifyFixers>false</notifyFixers>
226 <notifyUpstreamCommitters>false</notifyUpstreamCommitters>
227 <buildToChatNotifier class="hudson.plugins.im.build_notify.DefaultBuildToChatNotifier"/>
228 <matrixMultiplier>ONLY_CONFIGURATIONS</matrixMultiplier>
229 <channels/>
230 </hudson.plugins.ircbot.IrcPublisher>
231{% endif %}
232{% if publish %}
233 <hudson.plugins.build__publisher.BuildPublisher>
234 <publishUnstableBuilds>true</publishUnstableBuilds>
235 <publishFailedBuilds>true</publishFailedBuilds>
236 <postActions class="vector"/>
237 </hudson.plugins.build__publisher.BuildPublisher>
238{% endif %}
239 <hudson.plugins.parameterizedtrigger.BuildTrigger>
240 <configs>
241{% if ppa_target and distributions %}
242 <hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
243 <configs>
244 <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
245 <properties>ppa_target=${ppa_target}
246packaging_branch=${packaging_branch}
247trunk=${target_branch}
248distributions=${distributions}
249version_string_format=${version_string_format}.${BUILD_NUMBER}
250hook=${dput_hooks}</properties>
251 </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
252 </configs>
253 <projects>generic-dput</projects>
254 <condition>SUCCESS</condition>
255 <triggerWithNoParameters>false</triggerWithNoParameters>
256 </hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
257{% endif %}
258 <hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
259 <configs>
260 <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
261 <properties>local_archive_host={{ local_archive_host }}
262local_archive_login={{ local_archive_login }}
263temp_dir={{ local_archive_tmp }}/${local_archive_name}/${project_name}.${BUILD_NUMBER}.rebuild</properties>
264 </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
265 </configs>
266 <projects>generic-cleanup-mbs</projects>
267 <condition>ALWAYS</condition>
268 <triggerWithNoParameters>false</triggerWithNoParameters>
269 </hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
270 </configs>
271 </hudson.plugins.parameterizedtrigger.BuildTrigger>
272 </publishers>
273 <buildWrappers/>
274</project>
0275
=== modified file 'stacks/head/mir.cfg'
--- stacks/head/mir.cfg 2013-05-29 07:50:01 +0000
+++ stacks/head/mir.cfg 2013-05-29 14:11:26 +0000
@@ -8,9 +8,20 @@
8 dependencies:8 dependencies:
9 - qa9 - qa
10 ci_default:10 ci_default:
11 autolanding_template: mbs-autolanding-config.xml.tmpl
12 rebuild_template: mbs-rebuild-config.xml.tmpl
13 hook_source: lp:~private-ps-quality-team/+junk/mbs-archive-hooks
14 hooks: H05set_package_version D00mbs_archive
11 configurations:15 configurations:
12 raring-amd64:16 raring-amd64:
17 template: mbs-pbuilder-config.xml.tmpl
13 node_label: pbuilder18 node_label: pbuilder
19 local_archive_host: naartjie
20 local_archive_login: ubuntu
21 local_archive_tmp: /home/ubuntu/local-archive
22 local_archive_name: head.mir
23 local_archive_source: http://naartjie/archive/
24 local_archive_pocket: raring
14 build_timeout: 12025 build_timeout: 120
15 autolanding:26 autolanding:
16 ppa_target: ppa:mir-team/staging27 ppa_target: ppa:mir-team/staging
@@ -19,8 +30,8 @@
19 projects:30 projects:
20 mir:31 mir:
21 daily_release: False32 daily_release: False
22 contact_email: martin.mrazik@canonical.com33 contact_email: martin.mrazik@canonical.com francis.ginther@canonical.com
23 hooks: H10enable_coverage B10gcovr_run H15enable_testing D10install_valgrind B09copy_results D09add_ppa-phablet-team-ppa34 hooks: H05set_package_version D00mbs_archive H10enable_coverage B10gcovr_run H15enable_testing D10install_valgrind B09copy_results D09add_ppa-phablet-team-ppa
24 archive_artifacts: '**/results/*test*.xml, **/results/coverage.xml, **/output/*deb'35 archive_artifacts: '**/results/*test*.xml, **/results/coverage.xml, **/output/*deb'
25 publish_coverage: '**/results/coverage.xml'36 publish_coverage: '**/results/coverage.xml'
26 publish_junit: '**/results/*test*.xml'37 publish_junit: '**/results/*test*.xml'
@@ -34,13 +45,14 @@
34 template: False45 template: False
35 mir-android-raring-i386-build:46 mir-android-raring-i386-build:
36 template: False47 template: False
48 rebuild: lightdm-mir,unity-system-compositor
37 # TODO irc if autolanding fails49 # TODO irc if autolanding fails
38 qmir:50 qmir:
39 contact_email: martin.mrazik@canonical.com51 contact_email: martin.mrazik@canonical.com
40 daily_release: False52 daily_release: False
41 lightdm:53 lightdm:
42 contact_email: thomi.richards@canonical.com54 contact_email: thomi.richards@canonical.com
43 hooks: H40native_hack.py D08add_ppa-qt5-proper55 hooks: H05set_package_version D00mbs_archive H40native_hack.py D08add_ppa-qt5-proper
44 packaging_branch: lp:~lightdm-team/lightdm/trunk-packaging56 packaging_branch: lp:~lightdm-team/lightdm/trunk-packaging
45 daily_release: False57 daily_release: False
46 autolanding:58 autolanding:
@@ -48,10 +60,10 @@
48 distributions: precise,quantal,raring,saucy60 distributions: precise,quantal,raring,saucy
49 lightdm-mir:61 lightdm-mir:
50 target_branch: lp:~mir-team/lightdm/unity62 target_branch: lp:~mir-team/lightdm/unity
51 contact_email: thomi.richards@canonical.com63 contact_email: thomi.richards@canonical.com francis.ginther@canonical.com
52 hooks: D08add_ppa-qt5-proper D09add_ppa-mir-team-staging64 hooks: H05set_package_version D00mbs_archive D08add_ppa-qt5-proper D09add_ppa-mir-team-staging
53 daily_release: False65 daily_release: False
54 unity-system-compositor:66 unity-system-compositor:
55 daily_release: False67 daily_release: False
56 contact_email: thomi.richards@canonical.com68 contact_email: thomi.richards@canonical.com francis.ginther@canonical.com
57 hooks: D08add_ppa-qt5-proper D09add_ppa-mir-team-staging69 hooks: H05set_package_version D00mbs_archive D08add_ppa-qt5-proper D09add_ppa-mir-team-staging
5870
=== modified file 'stacks/head/oif.cfg'
--- stacks/head/oif.cfg 2013-05-29 07:50:01 +0000
+++ stacks/head/oif.cfg 2013-05-29 14:11:26 +0000
@@ -9,8 +9,9 @@
9 contact_email: "francis.ginther@canonical.com"9 contact_email: "francis.ginther@canonical.com"
10 team: PS-QA10 team: PS-QA
11 autolanding_template: mbs-autolanding-config.xml.tmpl11 autolanding_template: mbs-autolanding-config.xml.tmpl
12 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check12 rebuild_template: mbs-rebuild-config.xml.tmpl
13 hook_source: lp:~private-ps-quality-team/+junk/oif-hooks13 hooks: H05set_package_version D00mbs_archive
14 hook_source: lp:~private-ps-quality-team/+junk/mbs-archive-hooks
14 configurations:15 configurations:
15 raring-amd64:16 raring-amd64:
16 template: mbs-pbuilder-config.xml.tmpl17 template: mbs-pbuilder-config.xml.tmpl
@@ -24,9 +25,9 @@
24 publish_coverage: False25 publish_coverage: False
25 local_archive_host: naartjie26 local_archive_host: naartjie
26 local_archive_login: ubuntu27 local_archive_login: ubuntu
27 local_archive_tmp: /home/ubuntu/ppa_archive/oif-staging28 local_archive_tmp: /home/ubuntu/local-archive
28 local_archive: oif-staging29 local_archive_name: head.oif
29 local_archive_source: http://naartjie/archive/oif-staging30 local_archive_source: http://naartjie/archive/
30 local_archive_pocket: raring31 local_archive_pocket: raring
31 dependencies:32 dependencies:
32 - qa33 - qa
@@ -36,6 +37,9 @@
36 tests: unity.tests.test_dash.DashRevealTests.test_alt_f4_close_dash37 tests: unity.tests.test_dash.DashRevealTests.test_alt_f4_close_dash
37 projects:38 projects:
38 frame:39 frame:
40 rebuild: grail
39 geis:41 geis:
42 rebuild: libgrip
40 grail:43 grail:
44 rebuild: geis
41 libgrip:45 libgrip:
4246
=== modified file 'stacks/head/unity.cfg'
--- stacks/head/unity.cfg 2013-05-29 07:50:01 +0000
+++ stacks/head/unity.cfg 2013-05-29 14:11:26 +0000
@@ -9,8 +9,9 @@
9 contact_email: "francis.ginther@canonical.com"9 contact_email: "francis.ginther@canonical.com"
10 team: PS-QA10 team: PS-QA
11 autolanding_template: mbs-autolanding-config.xml.tmpl11 autolanding_template: mbs-autolanding-config.xml.tmpl
12 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check12 rebuild_template: mbs-rebuild-config.xml.tmpl
13 hook_source: lp:~private-ps-quality-team/+junk/mbs-hooks13 hooks: H05set_package_version D00mbs_archive
14 hook_source: lp:~private-ps-quality-team/+junk/unity-hooks
14 configurations:15 configurations:
15 raring-amd64:16 raring-amd64:
16 template: mbs-pbuilder-config.xml.tmpl17 template: mbs-pbuilder-config.xml.tmpl
@@ -22,11 +23,11 @@
22 template: mbs-pbuilder-config.xml.tmpl23 template: mbs-pbuilder-config.xml.tmpl
23 node_label: panda-pbuilder24 node_label: panda-pbuilder
24 publish_coverage: False25 publish_coverage: False
25 local_archive: staging26 local_archive_name: head.unity
26 local_archive_host: naartjie27 local_archive_host: naartjie
27 local_archive_login: ubuntu28 local_archive_login: ubuntu
28 local_archive_tmp: /home/ubuntu/ppa_archive/staging29 local_archive_tmp: /home/ubuntu/local-archive
29 local_archive_source: http://naartjie/archive/staging30 local_archive_source: http://naartjie/archive/
30 local_archive_pocket: raring31 local_archive_pocket: raring
31 test_parameters:32 test_parameters:
32 testpackages: unity-autopilot33 testpackages: unity-autopilot
@@ -41,24 +42,25 @@
41 - hud42 - hud
42 projects:43 projects:
43 dee:44 dee:
44 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B05xsltproc B09copy_results H10enable_coverage B10gcovr_run D10install_lcov45 hooks: H05set_package_version D00mbs_archive D10specifictests B05xsltproc B09copy_results H10enable_coverage B10gcovr_run D10install_lcov
45 archive_artifacts: '**/results/**'46 archive_artifacts: '**/results/**'
46 publish_coverage: '**/results/coverage.xml'47 publish_coverage: '**/results/coverage.xml'
47 publish_junit: '**/results/*test*xml'48 publish_junit: '**/results/*test*xml'
48 configurations:49 configurations:
49 raring-armhf:50 raring-armhf:
50 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B05xsltproc B09copy_results51 hooks: H05set_package_version D00mbs_archive D10specifictests B05xsltproc B09copy_results
51 compiz:52 compiz:
52 daily_release: False # remember we don't want to land compiz trunk before activating this one53 daily_release: False # remember we don't want to land compiz trunk before activating this one
53 build_timeout: 24054 build_timeout: 240
54 archive_artifacts: '**/results/**'55 archive_artifacts: '**/results/**'
55 publish_coverage: '**/results/coverage.xml'56 publish_coverage: '**/results/coverage.xml'
56 publish_junit: '**/results/*test*xml'57 publish_junit: '**/results/*test*xml'
58 rebuild: unity
57 autolanding:59 autolanding:
58 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check B09googletests_cmake H15enable_testing D10install_google_test H10enable_coverage B10gcovr_run D10install_lcov60 hooks: H05set_package_version D00mbs_archive B09googletests_cmake H15enable_testing D10install_google_test H10enable_coverage B10gcovr_run D10install_lcov
59 configurations:61 configurations:
60 raring-armhf:62 raring-armhf:
61 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check B09googletests_cmake H15enable_testing D10install_google_test63 hooks: H05set_package_version D00mbs_archive B09googletests_cmake H15enable_testing D10install_google_test
62 ci:64 ci:
63 hooks: D00mbs_archive H15enable_testing D10install_google_test H10enable_coverage B10gcovr_run D10install_lcov B09googletests_cmake65 hooks: D00mbs_archive H15enable_testing D10install_google_test H10enable_coverage B10gcovr_run D10install_lcov B09googletests_cmake
64 configurations:66 configurations:
@@ -69,55 +71,56 @@
69 libunity:71 libunity:
70 libunity-misc:72 libunity-misc:
71 nux:73 nux:
72 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check B09googletests B09copy_results D10specifictests H10enable_coverage B10gcovr_run D10install_lcov74 hooks: H05set_package_version D00mbs_archive B09googletests B09copy_results D10specifictests H10enable_coverage B10gcovr_run D10install_lcov
73 archive_artifacts: '**/results/**'75 archive_artifacts: '**/results/**'
74 publish_coverage: '**/results/coverage.xml'76 publish_coverage: '**/results/coverage.xml'
75 publish_junit: '**/results/*test*xml'77 publish_junit: '**/results/*test*xml'
78 rebuild: unity
76 configurations:79 configurations:
77 raring-armhf:80 raring-armhf:
78 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check B09googletests B09copy_results D10specifictests81 hooks: H05set_package_version D00mbs_archive B09googletests B09copy_results D10specifictests
79 unity:82 unity:
80 build_timeout: 24083 build_timeout: 240
81 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10install_google_test H10enable_coverage B10gcovr_run B09googletests B09copy_results84 hooks: H05set_package_version D00mbs_archive D10install_google_test H10enable_coverage B10gcovr_run B09googletests B09copy_results
82 archive_artifacts: '**/results/**'85 archive_artifacts: '**/results/**'
83 publish_coverage: '**/results/coverage.xml'86 publish_coverage: '**/results/coverage.xml'
84 publish_junit: '**/results/*test*xml'87 publish_junit: '**/results/*test*xml'
85 configurations:88 configurations:
86 raring-armhf:89 raring-armhf:
87 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10install_google_test B09googletests B09copy_results90 hooks: H05set_package_version D00mbs_archive D10install_google_test B09googletests B09copy_results
88 unity-asset-pool:91 unity-asset-pool:
89 unity-lens-applications:92 unity-lens-applications:
90 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B09copy_results H10enable_coverage B10gcovr_run D10install_lcov93 hooks: H05set_package_version D00mbs_archive D10specifictests B09copy_results H10enable_coverage B10gcovr_run D10install_lcov
91 configurations:94 configurations:
92 raring-armhf:95 raring-armhf:
93 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B09copy_results96 hooks: H05set_package_version D00mbs_archive D10specifictests B09copy_results
94 archive_artifacts: False97 archive_artifacts: False
95 archive_artifacts: '**/results/**'98 archive_artifacts: '**/results/**'
96 publish_coverage: '**/results/coverage.xml'99 publish_coverage: '**/results/coverage.xml'
97 unity-lens-files:100 unity-lens-files:
98 unity-lens-friends:101 unity-lens-friends:
99 unity-lens-music:102 unity-lens-music:
100 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B09copy_results H10enable_coverage B10gcovr_run D10install_lcov103 hooks: H05set_package_version D00mbs_archive D10specifictests B09copy_results H10enable_coverage B10gcovr_run D10install_lcov
101 configurations:104 configurations:
102 raring-armhf:105 raring-armhf:
103 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B09copy_results106 hooks: H05set_package_version D00mbs_archive D10specifictests B09copy_results
104 archive_artifacts: False107 archive_artifacts: False
105 archive_artifacts: '**/results/**'108 archive_artifacts: '**/results/**'
106 publish_coverage: '**/results/coverage.xml'109 publish_coverage: '**/results/coverage.xml'
107 unity-lens-photos:110 unity-lens-photos:
108 unity-lens-shopping:111 unity-lens-shopping:
109 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B09copy_results H10enable_coverage B10gcovr_run D10install_lcov112 hooks: H05set_package_version D00mbs_archive D10specifictests B09copy_results H10enable_coverage B10gcovr_run D10install_lcov
110 configurations:113 configurations:
111 raring-armhf:114 raring-armhf:
112 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B09copy_results115 hooks: H05set_package_version D00mbs_archive D10specifictests B09copy_results
113 archive_artifacts: False116 archive_artifacts: False
114 archive_artifacts: '**/results/**'117 archive_artifacts: '**/results/**'
115 publish_coverage: '**/results/coverage.xml'118 publish_coverage: '**/results/coverage.xml'
116 unity-lens-video:119 unity-lens-video:
117 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B09copy_results H10enable_coverage B10gcovr_run D10install_lcov120 hooks: H05set_package_version D00mbs_archive D10specifictests B09copy_results H10enable_coverage B10gcovr_run D10install_lcov
118 configurations:121 configurations:
119 raring-armhf:122 raring-armhf:
120 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B09copy_results123 hooks: H05set_package_version D00mbs_archive D10specifictests B09copy_results
121 archive_artifacts: False124 archive_artifacts: False
122 archive_artifacts: '**/results/**'125 archive_artifacts: '**/results/**'
123 publish_coverage: '**/results/coverage.xml'126 publish_coverage: '**/results/coverage.xml'
124127
=== modified file 'stacks/raring/oif.cfg'
--- stacks/raring/oif.cfg 2013-04-30 18:25:22 +0000
+++ stacks/raring/oif.cfg 2013-05-29 14:11:26 +0000
@@ -10,8 +10,9 @@
10 contact_email: "francis.ginther@canonical.com"10 contact_email: "francis.ginther@canonical.com"
11 team: PS-QA11 team: PS-QA
12 autolanding_template: mbs-autolanding-config.xml.tmpl12 autolanding_template: mbs-autolanding-config.xml.tmpl
13 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check13 rebuild_template: mbs-rebuild-config.xml.tmpl
14 hook_source: lp:~private-ps-quality-team/+junk/oif-hooks14 hooks: H05set_package_version D00mbs_archive
15 hook_source: lp:~private-ps-quality-team/+junk/mbs-archive-hooks
15 configurations:16 configurations:
16 raring-amd64:17 raring-amd64:
17 template: mbs-pbuilder-config.xml.tmpl18 template: mbs-pbuilder-config.xml.tmpl
@@ -25,9 +26,9 @@
25 publish_coverage: False26 publish_coverage: False
26 local_archive_host: naartjie27 local_archive_host: naartjie
27 local_archive_login: ubuntu28 local_archive_login: ubuntu
28 local_archive_tmp: /home/ubuntu/ppa_archive/oif-staging29 local_archive_tmp: /home/ubuntu/local-archive
29 local_archive: oif-staging30 local_archive_name: raring.oif
30 local_archive_source: http://naartjie/archive/oif-staging31 local_archive_source: http://naartjie/archive/
31 local_archive_pocket: raring32 local_archive_pocket: raring
32 dependencies:33 dependencies:
33 - qa34 - qa
@@ -39,6 +40,7 @@
39 evemu:40 evemu:
40 target_branch: lp:evemu/raring41 target_branch: lp:evemu/raring
41 autolanding_template: autolanding-config.xml.tmpl42 autolanding_template: autolanding-config.xml.tmpl
43 rebuild_template: False
42 configurations:44 configurations:
43 raring-amd64:45 raring-amd64:
44 template: pbuilder-config.xml.tmpl46 template: pbuilder-config.xml.tmpl
@@ -48,9 +50,12 @@
48 template: pbuilder-config.xml.tmpl50 template: pbuilder-config.xml.tmpl
49 frame:51 frame:
50 target_branch: lp:frame/raring52 target_branch: lp:frame/raring
53 rebuild: grail
51 geis:54 geis:
52 target_branch: lp:geis/raring55 target_branch: lp:geis/raring
56 rebuild: libgrip
53 grail:57 grail:
54 target_branch: lp:grail/raring58 target_branch: lp:grail/raring
59 rebuild: geis
55 libgrip:60 libgrip:
56 target_branch: lp:libgrip/raring61 target_branch: lp:libgrip/raring
5762
=== modified file 'stacks/raring/unity.cfg'
--- stacks/raring/unity.cfg 2013-05-28 17:20:56 +0000
+++ stacks/raring/unity.cfg 2013-05-29 14:11:26 +0000
@@ -10,8 +10,9 @@
10 contact_email: "francis.ginther@canonical.com"10 contact_email: "francis.ginther@canonical.com"
11 team: PS-QA11 team: PS-QA
12 autolanding_template: mbs-autolanding-config.xml.tmpl12 autolanding_template: mbs-autolanding-config.xml.tmpl
13 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check13 rebuild_template: mbs-rebuild-config.xml.tmpl
14 hook_source: lp:~private-ps-quality-team/+junk/mbs-hooks14 hooks: H05set_package_version D00mbs_archive
15 hook_source: lp:~private-ps-quality-team/+junk/unity-hooks
15 configurations:16 configurations:
16 raring-amd64:17 raring-amd64:
17 template: mbs-pbuilder-config.xml.tmpl18 template: mbs-pbuilder-config.xml.tmpl
@@ -23,11 +24,11 @@
23 template: mbs-pbuilder-config.xml.tmpl24 template: mbs-pbuilder-config.xml.tmpl
24 node_label: panda-pbuilder25 node_label: panda-pbuilder
25 publish_coverage: False26 publish_coverage: False
26 local_archive: staging27 local_archive_name: raring.unity
27 local_archive_host: naartjie28 local_archive_host: naartjie
28 local_archive_login: ubuntu29 local_archive_login: ubuntu
29 local_archive_tmp: /home/ubuntu/ppa_archive/staging30 local_archive_tmp: /home/ubuntu/local-archive
30 local_archive_source: http://naartjie/archive/staging31 local_archive_source: http://naartjie/archive/
31 local_archive_pocket: raring32 local_archive_pocket: raring
32 test_parameters:33 test_parameters:
33 testpackages: unity-autopilot34 testpackages: unity-autopilot
@@ -42,62 +43,64 @@
42 compiz:43 compiz:
43 build_timeout: 24044 build_timeout: 240
44 target_branch: lp:compiz/0.9.945 target_branch: lp:compiz/0.9.9
45 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check B09googletests_cmake H15enable_testing D10install_google_test H10enable_coverage B10gcovr_run D10install_lcov46 hooks: H05set_package_version D00mbs_archive B09googletests_cmake H15enable_testing D10install_google_test H10enable_coverage B10gcovr_run D10install_lcov
46 archive_artifacts: '**/results/**'47 archive_artifacts: '**/results/**'
47 publish_coverage: '**/results/coverage.xml'48 publish_coverage: '**/results/coverage.xml'
48 publish_junit: '**/results/*test*xml'49 publish_junit: '**/results/*test*xml'
50 rebuild: unity
49 autolanding:51 autolanding:
50 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check B09googletests_cmake H15enable_testing D10install_google_test H10enable_coverage B10gcovr_run D10install_lcov52 hooks: H05set_package_version D00mbs_archive B09googletests_cmake H15enable_testing D10install_google_test H10enable_coverage B10gcovr_run D10install_lcov
51 configurations:53 configurations:
52 raring-armhf:54 raring-armhf:
53 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check B09googletests_cmake H15enable_testing D10install_google_test55 hooks: H05set_package_version D00mbs_archive B09googletests_cmake H15enable_testing D10install_google_test
54 ci:56 ci:
55 hooks: H10enable_coverage B02google-tests57 hooks: H10enable_coverage B02google-tests
56 configurations:58 configurations:
57 compiz-gles-ci:59 compiz-gles-ci:
58 template: False60 template: False
59 raring-armhf:61 raring-armhf:
60 hooks: D00mbs_archive H40enable_gensymbols_check B09googletests H15enable_testing D10install_google_test D10install_valgrind62 hooks: D00mbs_archive B09googletests H15enable_testing D10install_google_test D10install_valgrind
61 dee:63 dee:
62 target_branch: lp:~unity-team/dee/raring64 target_branch: lp:~unity-team/dee/raring
63 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B05xsltproc B09copy_results H10enable_coverage B10gcovr_run D10install_lcov65 hooks: H05set_package_version D00mbs_archive D10specifictests B05xsltproc B09copy_results H10enable_coverage B10gcovr_run D10install_lcov
64 archive_artifacts: '**/results/**'66 archive_artifacts: '**/results/**'
65 publish_coverage: '**/results/coverage.xml'67 publish_coverage: '**/results/coverage.xml'
66 publish_junit: '**/results/*test*xml'68 publish_junit: '**/results/*test*xml'
67 configurations:69 configurations:
68 raring-armhf:70 raring-armhf:
69 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B05xsltproc B09copy_results71 hooks: H05set_package_version D00mbs_archive D10specifictests B05xsltproc B09copy_results
70 libunity:72 libunity:
71 target_branch: lp:libunity/raring73 target_branch: lp:libunity/raring
72 libunity-misc:74 libunity-misc:
73 target_branch: lp:libunity-misc/raring75 target_branch: lp:libunity-misc/raring
74 nux:76 nux:
75 target_branch: lp:nux/raring77 target_branch: lp:nux/raring
76 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check B09googletests B09copy_results D10specifictests H10enable_coverage B10gcovr_run D10install_lcov78 hooks: H05set_package_version D00mbs_archive B09googletests B09copy_results D10specifictests H10enable_coverage B10gcovr_run D10install_lcov
77 archive_artifacts: '**/results/**'79 archive_artifacts: '**/results/**'
78 publish_coverage: '**/results/coverage.xml'80 publish_coverage: '**/results/coverage.xml'
79 publish_junit: '**/results/*test*xml'81 publish_junit: '**/results/*test*xml'
82 rebuild: unity
80 configurations:83 configurations:
81 raring-armhf:84 raring-armhf:
82 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check B09googletests B09copy_results D10specifictests85 hooks: H05set_package_version D00mbs_archive B09googletests B09copy_results D10specifictests
83 unity:86 unity:
84 target_branch: lp:unity/7.087 target_branch: lp:unity/7.0
85 build_timeout: 24088 build_timeout: 240
86 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10install_google_test H10enable_coverage B10gcovr_run B09googletests B09copy_results89 hooks: H05set_package_version D00mbs_archive D10install_google_test H10enable_coverage B10gcovr_run B09googletests B09copy_results
87 archive_artifacts: '**/results/**'90 archive_artifacts: '**/results/**'
88 publish_coverage: '**/results/coverage.xml'91 publish_coverage: '**/results/coverage.xml'
89 publish_junit: '**/results/*test*xml'92 publish_junit: '**/results/*test*xml'
90 configurations:93 configurations:
91 raring-armhf:94 raring-armhf:
92 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10install_google_test B09googletests B09copy_results95 hooks: H05set_package_version D00mbs_archive D10install_google_test B09googletests B09copy_results
93 unity-asset-pool:96 unity-asset-pool:
94 target_branch: lp:unity-asset-pool/raring97 target_branch: lp:unity-asset-pool/raring
95 unity-lens-applications:98 unity-lens-applications:
96 target_branch: lp:unity-lens-applications/raring99 target_branch: lp:unity-lens-applications/raring
97 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B09copy_results H10enable_coverage B10gcovr_run D10install_lcov100 hooks: H05set_package_version D00mbs_archive D10specifictests B09copy_results H10enable_coverage B10gcovr_run D10install_lcov
98 configurations:101 configurations:
99 raring-armhf:102 raring-armhf:
100 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B09copy_results103 hooks: H05set_package_version D00mbs_archive D10specifictests B09copy_results
101 archive_artifacts: False104 archive_artifacts: False
102 archive_artifacts: '**/results/**'105 archive_artifacts: '**/results/**'
103 publish_coverage: '**/results/coverage.xml'106 publish_coverage: '**/results/coverage.xml'
@@ -105,10 +108,10 @@
105 target_branch: lp:unity-lens-files/raring108 target_branch: lp:unity-lens-files/raring
106 unity-lens-music:109 unity-lens-music:
107 target_branch: lp:unity-lens-music/raring110 target_branch: lp:unity-lens-music/raring
108 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B09copy_results H10enable_coverage B10gcovr_run D10install_lcov111 hooks: H05set_package_version D00mbs_archive D10specifictests B09copy_results H10enable_coverage B10gcovr_run D10install_lcov
109 configurations:112 configurations:
110 raring-armhf:113 raring-armhf:
111 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B09copy_results114 hooks: H05set_package_version D00mbs_archive D10specifictests B09copy_results
112 archive_artifacts: False115 archive_artifacts: False
113 archive_artifacts: '**/results/**'116 archive_artifacts: '**/results/**'
114 publish_coverage: '**/results/coverage.xml'117 publish_coverage: '**/results/coverage.xml'
@@ -116,10 +119,10 @@
116 target_branch: lp:unity-lens-photos/raring119 target_branch: lp:unity-lens-photos/raring
117 unity-lens-shopping:120 unity-lens-shopping:
118 target_branch: lp:unity-lens-shopping/raring121 target_branch: lp:unity-lens-shopping/raring
119 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B09copy_results H10enable_coverage B10gcovr_run D10install_lcov122 hooks: H05set_package_version D00mbs_archive D10specifictests B09copy_results H10enable_coverage B10gcovr_run D10install_lcov
120 configurations:123 configurations:
121 raring-armhf:124 raring-armhf:
122 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B09copy_results125 hooks: H05set_package_version D00mbs_archive D10specifictests B09copy_results
123 archive_artifacts: False126 archive_artifacts: False
124 archive_artifacts: '**/results/**'127 archive_artifacts: '**/results/**'
125 publish_coverage: '**/results/coverage.xml'128 publish_coverage: '**/results/coverage.xml'
@@ -127,10 +130,10 @@
127 target_branch: lp:unity-scope-gdrive/raring130 target_branch: lp:unity-scope-gdrive/raring
128 unity-lens-video:131 unity-lens-video:
129 target_branch: lp:unity-lens-video/raring132 target_branch: lp:unity-lens-video/raring
130 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B09copy_results H10enable_coverage B10gcovr_run D10install_lcov133 hooks: H05set_package_version D00mbs_archive D10specifictests B09copy_results H10enable_coverage B10gcovr_run D10install_lcov
131 configurations:134 configurations:
132 raring-armhf:135 raring-armhf:
133 hooks: H05set_package_version D00mbs_archive H40enable_gensymbols_check D10specifictests B09copy_results136 hooks: H05set_package_version D00mbs_archive D10specifictests B09copy_results
134 archive_artifacts: False137 archive_artifacts: False
135 archive_artifacts: '**/results/**'138 archive_artifacts: '**/results/**'
136 publish_coverage: '**/results/coverage.xml'139 publish_coverage: '**/results/coverage.xml'
137140
=== modified file 'tests/test_cu2dUpdateCi.py'
--- tests/test_cu2dUpdateCi.py 2013-05-22 13:12:26 +0000
+++ tests/test_cu2dUpdateCi.py 2013-05-29 14:11:26 +0000
@@ -272,7 +272,7 @@
272 self.assertEqual(expected, actual)272 self.assertEqual(expected, actual)
273273
274274
275class TestGenerateJobs(TestWithScenarios, TestCase):275class TestGenerateJobs(TestCase):
276 job_template = 'ci.xml.tmpl'276 job_template = 'ci.xml.tmpl'
277 build_template = 'build.xml.tmpl'277 build_template = 'build.xml.tmpl'
278278
@@ -288,7 +288,7 @@
288 'foo-raring-i386-ci',288 'foo-raring-i386-ci',
289 'foo-ci']289 'foo-ci']
290 job_list = []290 job_list = []
291 self.update_ci.generate_jobs(job_list, 'foo', 'ci', config,291 self.update_ci.generate_jobs(job_list, 'foo', 'ci', 'ci', config,
292 self.job_template, self.build_template,292 self.job_template, self.build_template,
293 {})293 {})
294 actual = [job['name'] for job in job_list]294 actual = [job['name'] for job in job_list]
@@ -303,7 +303,7 @@
303 'build.xml.tmpl',303 'build.xml.tmpl',
304 'ci.xml.tmpl']304 'ci.xml.tmpl']
305 job_list = []305 job_list = []
306 self.update_ci.generate_jobs(job_list, 'foo', 'ci', config,306 self.update_ci.generate_jobs(job_list, 'foo', 'ci', 'ci', config,
307 self.job_template, self.build_template,307 self.job_template, self.build_template,
308 {})308 {})
309 actual = [job['template'] for job in job_list]309 actual = [job['template'] for job in job_list]
@@ -320,7 +320,7 @@
320 'bar.xml.tmpl',320 'bar.xml.tmpl',
321 'ci.xml.tmpl']321 'ci.xml.tmpl']
322 job_list = []322 job_list = []
323 self.update_ci.generate_jobs(job_list, 'foo', 'ci', config,323 self.update_ci.generate_jobs(job_list, 'foo', 'ci', 'ci', config,
324 self.job_template, self.build_template,324 self.job_template, self.build_template,
325 {})325 {})
326 actual = [job['template'] for job in job_list]326 actual = [job['template'] for job in job_list]
@@ -333,12 +333,39 @@
333 'raring-i386': {'node_label': 'pbuilder'}}}333 'raring-i386': {'node_label': 'pbuilder'}}}
334 expected = 'foo-raring-amd64-ci,foo-raring-i386-ci'334 expected = 'foo-raring-amd64-ci,foo-raring-i386-ci'
335 job_list = []335 job_list = []
336 self.update_ci.generate_jobs(job_list, 'foo', 'ci', config,336 self.update_ci.generate_jobs(job_list, 'foo', 'ci', 'ci', config,
337 self.job_template, self.build_template,337 self.job_template, self.build_template,
338 {})338 {})
339 actual = job_list[2]['ctx']['builder_list']339 actual = job_list[2]['ctx']['builder_list']
340 self.assertEqual(expected, actual)340 self.assertEqual(expected, actual)
341341
342 def test_generate_rebuild_builder_list(self):
343 config = {
344 'configurations': {
345 'raring-amd64': {'node_label': 'pbuilder'},
346 'raring-i386': {'node_label': 'pbuilder'}}}
347 expected = 'foo-raring-amd64-autolanding,foo-raring-i386-autolanding'
348 job_list = []
349 self.update_ci.generate_jobs(job_list, 'foo', 'rebuild', 'autolanding',
350 config, self.job_template,
351 self.build_template, {})
352 actual = job_list[0]['ctx']['builder_list']
353 self.assertEqual(expected, actual)
354
355 def test_generate_rebuild_joblist(self):
356 config = {
357 'configurations': {
358 'raring-amd64': {'node_label': 'pbuilder'},
359 'raring-i386': {'node_label': 'pbuilder'}}}
360 expected = 'foo-rebuild'
361 job_list = []
362 self.update_ci.generate_jobs(job_list, 'foo', 'rebuild', 'autolanding',
363 config, self.job_template,
364 self.build_template, {})
365 actual = job_list[0]['name']
366 self.assertEqual(expected, actual)
367 self.assertEqual(1, len(job_list))
368
342369
343class TestUpdateJenkins(TestCase):370class TestUpdateJenkins(TestCase):
344 def setUp(self):371 def setUp(self):
@@ -415,11 +442,13 @@
415 'landing_job': 'generic-land'},442 'landing_job': 'generic-land'},
416 'projects': {443 'projects': {
417 'autopilot': {444 'autopilot': {
445 'rebuild_template': 'rebuild-config.xml.tmpl',
418 'team': 'Autopilot Team',446 'team': 'Autopilot Team',
419 'contact_email': 'address@email',447 'contact_email': 'address@email',
420 'distributions': 'raring,quantal,precise',448 'distributions': 'raring,quantal,precise',
421 'ppa_target': 'ppa:autopilot/ppa',449 'ppa_target': 'ppa:autopilot/ppa',
422 'hooks': 'parent-hook',450 'hooks': 'parent-hook',
451 'rebuild': 'autopilot-qt , autopilot-gtk',
423 'autolanding': {452 'autolanding': {
424 'postbuild_job': 'autopilot-docs-upload',453 'postbuild_job': 'autopilot-docs-upload',
425 'archive_artifacts': '**/output/*deb',454 'archive_artifacts': '**/output/*deb',
@@ -430,7 +459,13 @@
430 'raring-i386': {459 'raring-i386': {
431 'template': 'autopilot-config.xml.tmpl',460 'template': 'autopilot-config.xml.tmpl',
432 'node_label': 'pbuilder'}}}},461 'node_label': 'pbuilder'}}}},
433 'xpathselect': {}}}}462 'autopilot-gtk': {
463 'rebuild_template': 'rebuild-config.xml.tmpl',
464 'target_branch': 'lp:autopilot-gtk/1.0'},
465 'autopilot-qt': {
466 'rebuild_template': 'rebuild-config.xml.tmpl'},
467 'xpathselect': {
468 'rebuild': 'autopilot,another-project-rebuild'}}}}
434469
435 def setUp(self):470 def setUp(self):
436 self.update_ci = UpdateCi()471 self.update_ci = UpdateCi()
@@ -447,12 +482,27 @@
447 'autopilot-raring-armhf-autolanding',482 'autopilot-raring-armhf-autolanding',
448 'autopilot-raring-i386-autolanding',483 'autopilot-raring-i386-autolanding',
449 'autopilot-autolanding',484 'autopilot-autolanding',
485 'autopilot-rebuild',
486 'autopilot-qt-raring-amd64-ci',
487 'autopilot-qt-raring-armhf-ci',
488 'autopilot-qt-ci',
489 'autopilot-qt-raring-amd64-autolanding',
490 'autopilot-qt-raring-armhf-autolanding',
491 'autopilot-qt-autolanding',
492 'autopilot-qt-rebuild',
450 'xpathselect-raring-amd64-ci',493 'xpathselect-raring-amd64-ci',
451 'xpathselect-raring-armhf-ci',494 'xpathselect-raring-armhf-ci',
452 'xpathselect-ci',495 'xpathselect-ci',
453 'xpathselect-raring-amd64-autolanding',496 'xpathselect-raring-amd64-autolanding',
454 'xpathselect-raring-armhf-autolanding',497 'xpathselect-raring-armhf-autolanding',
455 'xpathselect-autolanding']498 'xpathselect-autolanding',
499 'autopilot-gtk-1.0-raring-amd64-ci',
500 'autopilot-gtk-1.0-raring-armhf-ci',
501 'autopilot-gtk-1.0-ci',
502 'autopilot-gtk-1.0-raring-amd64-autolanding',
503 'autopilot-gtk-1.0-raring-armhf-autolanding',
504 'autopilot-gtk-1.0-autolanding',
505 'autopilot-gtk-1.0-rebuild']
456 actual_name_list = [job['name'] for job in self.job_list]506 actual_name_list = [job['name'] for job in self.job_list]
457 self.assertEqual(expected_name_list, actual_name_list)507 self.assertEqual(expected_name_list, actual_name_list)
458508
@@ -464,12 +514,27 @@
464 'pbuilder-config.xml.tmpl',514 'pbuilder-config.xml.tmpl',
465 'autopilot-config.xml.tmpl',515 'autopilot-config.xml.tmpl',
466 'autolanding-config.xml.tmpl',516 'autolanding-config.xml.tmpl',
467 'pbuilder-config.xml.tmpl',517 'rebuild-config.xml.tmpl',
468 'pbuilder-config.xml.tmpl',518 'pbuilder-config.xml.tmpl',
469 'ci-config.xml.tmpl',519 'pbuilder-config.xml.tmpl',
470 'pbuilder-config.xml.tmpl',520 'ci-config.xml.tmpl',
471 'pbuilder-config.xml.tmpl',521 'pbuilder-config.xml.tmpl',
472 'autolanding-config.xml.tmpl']522 'pbuilder-config.xml.tmpl',
523 'autolanding-config.xml.tmpl',
524 'rebuild-config.xml.tmpl',
525 'pbuilder-config.xml.tmpl',
526 'pbuilder-config.xml.tmpl',
527 'ci-config.xml.tmpl',
528 'pbuilder-config.xml.tmpl',
529 'pbuilder-config.xml.tmpl',
530 'autolanding-config.xml.tmpl',
531 'pbuilder-config.xml.tmpl',
532 'pbuilder-config.xml.tmpl',
533 'ci-config.xml.tmpl',
534 'pbuilder-config.xml.tmpl',
535 'pbuilder-config.xml.tmpl',
536 'autolanding-config.xml.tmpl',
537 'rebuild-config.xml.tmpl']
473 actual_template_list = [job['template'] for job in self.job_list]538 actual_template_list = [job['template'] for job in self.job_list]
474 self.assertEqual(expected_template_list, actual_template_list)539 self.assertEqual(expected_template_list, actual_template_list)
475540
@@ -498,6 +563,8 @@
498 self.assertEqual(job['ctx']['priority'], 10000)563 self.assertEqual(job['ctx']['priority'], 10000)
499 elif job['name'].endswith('autolanding'):564 elif job['name'].endswith('autolanding'):
500 self.assertEqual(job['ctx']['priority'], 1000)565 self.assertEqual(job['ctx']['priority'], 1000)
566 elif job['name'].endswith('rebuild'):
567 self.assertEqual(job['ctx']['priority'], 1000)
501 else:568 else:
502 self.assertEqual(job['ctx']['priority'], 100)569 self.assertEqual(job['ctx']['priority'], 100)
503570
@@ -554,6 +621,21 @@
554 # Make sure no assertion groups were missed621 # Make sure no assertion groups were missed
555 self.assertEqual(count, 3)622 self.assertEqual(count, 3)
556623
624 def test_rebuild_list(self):
625 count = 0
626 for job in self.job_list:
627 if job['name'] == 'xpathselect-autolanding':
628 self.assertEqual(job['ctx']['rebuild'],
629 'autopilot-rebuild,another-project-rebuild')
630 count += 1
631 if job['name'] == 'autopilot-autolanding':
632 self.assertEqual(job['ctx']['rebuild'],
633 'autopilot-qt-rebuild,'
634 'autopilot-gtk-1.0-rebuild')
635 count += 1
636 # Make sure no assertion groups were missed
637 self.assertEqual(count, 2)
638
557 def test_target_project(self):639 def test_target_project(self):
558 job_list = []640 job_list = []
559 target_project = 'autopilot'641 target_project = 'autopilot'
@@ -565,7 +647,8 @@
565 'autopilot-raring-amd64-autolanding',647 'autopilot-raring-amd64-autolanding',
566 'autopilot-raring-armhf-autolanding',648 'autopilot-raring-armhf-autolanding',
567 'autopilot-raring-i386-autolanding',649 'autopilot-raring-i386-autolanding',
568 'autopilot-autolanding']650 'autopilot-autolanding',
651 'autopilot-rebuild']
569 actual_name_list = [job['name'] for job in job_list]652 actual_name_list = [job['name'] for job in job_list]
570 self.assertEqual(expected_name_list, actual_name_list)653 self.assertEqual(expected_name_list, actual_name_list)
571654

Subscribers

People subscribed via source and target branches

to all changes: