Merge lp:~1chb1n/ubuntu-openstack-ci/mp-deploy into lp:ubuntu-openstack-ci

Proposed by Ryan Beisner
Status: Merged
Merged at revision: 35
Proposed branch: lp:~1chb1n/ubuntu-openstack-ci/mp-deploy
Merge into: lp:ubuntu-openstack-ci
Diff against target: 630 lines (+278/-96)
8 files modified
admin/820-tarmac-credentials-distribute.sh (+32/-0)
job-parts/amulet_test.sh (+14/-5)
job-parts/lint_check.sh (+8/-6)
job-parts/trigger_by_mp_scanner.sh (+5/-5)
job-parts/unit_test.sh (+14/-5)
mp_comment.py (+124/-56)
populate/mappings.yaml (+66/-9)
populate/mp-comment.tmpl (+15/-10)
To merge this branch: bzr merge lp:~1chb1n/ubuntu-openstack-ci/mp-deploy
Reviewer Review Type Date Requested Status
Ryan Beisner (community) Approve
Review via email: mp+238763@code.launchpad.net

Description of the change

unleash mp commentator

To post a comment you must log in.
Revision history for this message
Ryan Beisner (1chb1n) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'admin/820-tarmac-credentials-distribute.sh'
2--- admin/820-tarmac-credentials-distribute.sh 1970-01-01 00:00:00 +0000
3+++ admin/820-tarmac-credentials-distribute.sh 2014-10-17 19:16:56 +0000
4@@ -0,0 +1,32 @@
5+#!/bin/bash -e
6+echo $0
7+
8+# Copy launchpad credentials file to all nodes
9+# Requires that you have placed credentials in the populate dir
10+
11+. $(dirname $0)/../env-common
12+
13+f_name="credentials"
14+f_dst_dir="${JENKINS_HOME}/.config/tarmac"
15+f_dst="${f_dst_dir}/${f_name}"
16+f_tmp="${U_HOME}/${f_name}"
17+f_src_dir="../populate"
18+f_src="${f_src_dir}/${f_name}"
19+
20+if [ ! -f "$f_src" ]; then
21+ echo "Local source file ${f_src} not found."
22+ pwd
23+ exit 1
24+fi
25+
26+for unit in $UNITS; do
27+ echo "making tarmac config directory on ${unit}!"
28+ juju ssh $unit "sudo su - jenkins -c 'mkdir -p /var/lib/jenkins/.config/tarmac'"
29+ echo "copying ${f_src} into ${unit}"
30+ juju scp $f_src ${unit}:${f_tmp}
31+ echo "adjusting permissions"
32+ juju ssh $unit "sudo mv $f_tmp $f_dst &&\
33+ sudo chown jenkins:jenkins -R ${f_dst} &&\
34+ sudo chmod 600 ${f_dst}"
35+done
36+
37
38=== modified file 'job-parts/amulet_test.sh'
39--- job-parts/amulet_test.sh 2014-10-09 20:54:32 +0000
40+++ job-parts/amulet_test.sh 2014-10-17 19:16:56 +0000
41@@ -1,11 +1,13 @@
42 #!/bin/bash -e
43
44+touch $WORKSPACE/try-amul
45+
46 env | grep -v "PASSWORD" | sort 2>&1 | tee env.$BUILD_NUMBER
47
48 # Make sure expected env vars exist
49 if [[ -z "$BASE_NAME" ]] || [[ -z "$BRANCH" ]]; then
50 echo "No BRANCH and/or BASE_NAME env vars."
51- touch $WORKSPACE/fyi.env-vars.bad
52+ touch $WORKSPACE/fyi-amul.env-vars.bad
53 else
54 # env vars are ok
55 mkdir -pv $JENKINS_HOME/checkout || true
56@@ -27,7 +29,7 @@
57
58 if [[ ! -f $MAKEFILE ]]; then
59 echo "No Makefile found."
60- touch $WORKSPACE/fyi.makefile.missing
61+ touch $WORKSPACE/fyi-amul.makefile.missing
62 else
63 # makefile exists
64 cd $CO_DIR
65@@ -38,13 +40,13 @@
66
67 if [[ -z $has_amulet ]]; then
68 echo "No amulet test detected in Makefile."
69- touch $WORKSPACE/fyi.amulet-test.missing
70+ touch $WORKSPACE/fyi-amul.amulet-test.missing
71 else
72 # amulet test
73 make test 2>&1 | tee $WORKSPACE/make-test.$BUILD_NUMBER
74 if [[ "${PIPESTATUS[0]}" != "0" ]]; then
75 echo "Amulet test failed."
76- touch $WORKSPACE/fyi.amulet-test.failed
77+ touch $WORKSPACE/fyi-amul.amulet-test.failed
78 fi
79 fi
80 fi
81@@ -53,10 +55,17 @@
82 # Set build description
83 ${OSCI_ROOT}/job-parts/b_d.sh || true
84
85+# Post mp comment if triggered by a merge proposal
86+if [[ -n "$MP_TRIGGER" ]]; then
87+ # Dry run, debug enabled, ftm.
88+ cd $OSCI_ROOT
89+ ./mp_comment.py || true
90+fi
91+
92 # Check for failures
93 if [[ "$(ls $WORKSPACE -1)" == *.failed* ]] || \
94 [[ "$(ls $WORKSPACE -1)" == *.missing* ]] || \
95 [[ "$(ls $WORKSPACE -1)" == *.bad* ]]; then
96- ls $WORKSPACE -1
97+ echo "Exiting 1"
98 exit 1
99 fi
100
101=== modified file 'job-parts/lint_check.sh'
102--- job-parts/lint_check.sh 2014-10-17 14:15:17 +0000
103+++ job-parts/lint_check.sh 2014-10-17 19:16:56 +0000
104@@ -1,11 +1,13 @@
105 #!/bin/bash -e
106
107+touch $WORKSPACE/try-lint
108+
109 env | grep -v "PASSWORD" | sort 2>&1 | tee env.$BUILD_NUMBER
110
111 # Make sure expected env vars exist
112 if [[ -z "$BASE_NAME" ]] || [[ -z "$BRANCH" ]]; then
113 echo "No BRANCH and/or BASE_NAME env vars."
114- touch $WORKSPACE.fyi.env-vars.bad
115+ touch $WORKSPACE.fyi-lint.env-vars.bad
116 else
117 # env vars are ok
118 mkdir -pv $JENKINS_HOME/checkout || true
119@@ -27,7 +29,7 @@
120
121 if [[ ! -f $MAKEFILE ]]; then
122 echo "No Makefile found."
123- touch $WORKSPACE/fyi.makefile.missing
124+ touch $WORKSPACE/fyi-lint.makefile.missing
125 else
126 # makefile exists
127 cd $CO_DIR
128@@ -38,13 +40,13 @@
129
130 if [[ -z $has_flake ]]; then
131 echo "No lint test detected in Makefile."
132- touch $WORKSPACE/fyi.lint-check.missing
133+ touch $WORKSPACE/fyi-lint.lint-check.missing
134 else
135 # lint check
136 make lint 2>&1 | tee $WORKSPACE/make-lint.$BUILD_NUMBER
137 if [[ "${PIPESTATUS[0]}" != "0" ]]; then
138 echo "Lint check test failed."
139- touch $WORKSPACE/fyi.lint-check.failed
140+ touch $WORKSPACE/fyi-lint.lint-check.failed
141 fi
142 fi
143 fi
144@@ -57,13 +59,13 @@
145 if [[ -n "$MP_TRIGGER" ]]; then
146 # Dry run, debug enabled, ftm.
147 cd $OSCI_ROOT
148- ./mp_comment.py -0d || true
149+ ./mp_comment.py || true
150 fi
151
152 # Check for failures
153 if [[ "$(ls $WORKSPACE -1)" == *.failed* ]] || \
154 [[ "$(ls $WORKSPACE -1)" == *.missing* ]] || \
155 [[ "$(ls $WORKSPACE -1)" == *.bad* ]]; then
156- ls $WORKSPACE -1
157+ echo "Exiting 1"
158 exit 1
159 fi
160
161=== modified file 'job-parts/trigger_by_mp_scanner.sh'
162--- job-parts/trigger_by_mp_scanner.sh 2014-10-10 06:07:20 +0000
163+++ job-parts/trigger_by_mp_scanner.sh 2014-10-17 19:16:56 +0000
164@@ -10,19 +10,19 @@
165 ./scan_merge_props.py -0 -d
166 ;;
167 FORCE_AMULET_ONLY)
168- ./scan_merge_props.py -F -N --XD --XL --XU
169+ ./scan_merge_props.py -F -N --XD --XL --XU -d
170 ;;
171 FORCE_UNIT_ONLY)
172- ./scan_merge_props.py -F -N --XD --XL --XA
173+ ./scan_merge_props.py -F -N --XD --XL --XA -d
174 ;;
175 FORCE_DEPLOY_ONLY)
176- ./scan_merge_props.py -F -N --XA --XL --XU
177+ ./scan_merge_props.py -F -N --XA --XL --XU -d
178 ;;
179 FORCE_LINT_ONLY)
180- ./scan_merge_props.py -F -N --XD --XA --XU
181+ ./scan_merge_props.py -F -N --XD --XA --XU -d
182 ;;
183 FORCE_ALL)
184- ./scan_merge_props.py -F -N
185+ ./scan_merge_props.py -F -N -d
186 ;;
187 FORCE_ALL_DRY_RUN)
188 ./scan_merge_props.py -F0d
189
190=== modified file 'job-parts/unit_test.sh'
191--- job-parts/unit_test.sh 2014-10-09 20:54:32 +0000
192+++ job-parts/unit_test.sh 2014-10-17 19:16:56 +0000
193@@ -1,11 +1,13 @@
194 #!/bin/bash -e
195
196+touch $WORKSPACE/try-unit
197+
198 env | grep -v "PASSWORD" | sort 2>&1 | tee env.$BUILD_NUMBER
199
200 # Make sure expected env vars exist
201 if [[ -z "$BASE_NAME" ]] || [[ -z "$BRANCH" ]]; then
202 echo "No BRANCH and/or BASE_NAME env vars."
203- touch $WORKSPACE/fyi.env-vars.bad
204+ touch $WORKSPACE/fyi-unit.env-vars.bad
205 else
206 # env vars are ok
207 mkdir -pv $JENKINS_HOME/checkout || true
208@@ -27,7 +29,7 @@
209
210 if [[ ! -f $MAKEFILE ]]; then
211 echo "No Makefile found."
212- touch $WORKSPACE/fyi.makefile.missing
213+ touch $WORKSPACE/fyi-unit.makefile.missing
214 else
215 # makefile exists
216 cd $CO_DIR
217@@ -39,7 +41,7 @@
218
219 if [[ -z "$nose_in_unit_test" ]] && [[ -z "$nose_in_test" ]]; then
220 echo "No unit test detected in Makefile."
221- touch $WORKSPACE/fyi.unit-test.missing
222+ touch $WORKSPACE/fyi-unit.unit-test.missing
223 else
224 # unit test
225 if [[ -n "$nose_in_unit_test" ]]; then
226@@ -51,7 +53,7 @@
227 fi
228 if [[ "${PIPESTATUS[0]}" != "0" ]]; then
229 echo "Unit test failed."
230- touch $WORKSPACE/fyi.unit-test.failed
231+ touch $WORKSPACE/fyi-unit.unit-test.failed
232 fi
233 fi
234 fi
235@@ -61,10 +63,17 @@
236 # Set build description
237 ${OSCI_ROOT}/job-parts/b_d.sh || true
238
239+# Post mp comment if triggered by a merge proposal
240+if [[ -n "$MP_TRIGGER" ]]; then
241+ # Dry run, debug enabled, ftm.
242+ cd $OSCI_ROOT
243+ ./mp_comment.py || true
244+fi
245+
246 # Check for failures
247 if [[ "$(ls $WORKSPACE -1)" == *.failed* ]] || \
248 [[ "$(ls $WORKSPACE -1)" == *.missing* ]] || \
249 [[ "$(ls $WORKSPACE -1)" == *.bad* ]]; then
250- ls $WORKSPACE -1
251+ echo "Exiting 1"
252 exit 1
253 fi
254
255=== modified file 'mp_comment.py'
256--- mp_comment.py 2014-10-16 22:22:32 +0000
257+++ mp_comment.py 2014-10-17 19:16:56 +0000
258@@ -16,18 +16,20 @@
259 USAGE = '''Usage: %prog [options]
260
261 Default behavior:
262- Constructs merge proposal message and posts it as a comment on the MP.
263+ Constructs merge proposal message by examining WORKSPACE files. Posts
264+ comment on the merge proposal.
265
266 For example:
267-
268- %prog
269+ %prog -0d
270+ Dry run with debug output. Displays comment but does not save or post it.
271+
272+ %prog -Xd
273+ Dry run with debug output. Creates comment file but does not post it.
274+
275+ %prog -q
276+ Less noisy output. Create message, comment file, and post it.
277 '''
278
279-LLIMIT = 25
280-TTYPES = {'lint': 'make-lint.*',
281- 'unit': 'unit-test.*',
282- 'amulet': 'make-test.*'
283- }
284
285 try:
286 WORKSPACE = os.environ['WORKSPACE']
287@@ -54,13 +56,19 @@
288 JOB_NAME = 'manual-job'
289
290
291-def create_mp_comment_file(contexts, source, out_file):
292+def create_mp_comment_file(contexts, source, out_file, params):
293 '''Create MP comment file, return comment filename
294 '''
295+ (opts, args) = params
296+
297+ if opts.dry:
298+ out_file = tempfile.mktemp()
299+ logging.info('Dry run, rendering to {} instead'.format(out_file))
300+
301 templates_dir = 'populate'
302 for idx, context in enumerate(contexts):
303 target = os.path.join(WORKSPACE, out_file.format(idx))
304- logging.debug('Rendering file: {}'.format(target))
305+ logging.info('Rendering file: {}'.format(target))
306 osci_utils.render(source, target, context, templates_dir)
307 return target
308
309@@ -74,9 +82,12 @@
310 help="Enable debug logging",
311 dest="debug", action="store_true", default=False)
312 parser.add_option('-0', '--dry-run',
313- help='Construct and display the message, but do not '
314+ help='Construct and display the message, but do not'
315 'create comment file and do not post comment.',
316 dest='dry', action='store_true', default=False)
317+ parser.add_option('-X', '--no-post',
318+ help='Do not post comment.',
319+ dest='no_post', action='store_true', default=False)
320 parser.add_option('-q', '--quiet',
321 help='Do not display the message to console.',
322 dest='quiet', action='store_true', default=False)
323@@ -96,6 +107,8 @@
324
325 logging.info('Workspace dir: {}'.format(WORKSPACE))
326
327+ conf_map = osci_utils.read_yaml(osci_utils.MAP_FILE)
328+
329 # gather info and results for comment
330 logging.info('Gathering env var items')
331 contexts = []
332@@ -110,71 +123,126 @@
333 'JOB_NAME': JOB_NAME
334 })
335
336+ # construct results blurb by examining artifacts
337 logging.info('Constructing results blurb')
338+ summary = []
339 results = []
340- fyis = glob(os.path.join(WORKSPACE, 'fyi.*.*'))
341- if len(fyis) > 0:
342- for fyi in fyis:
343- _line = ' FYI: {}'.format(
344- os.path.split(fyi)[1][4:].replace('.', ' '))
345- logging.debug(_line)
346- results.append(_line)
347- else:
348- logging.info('No "fyi" files found to include.')
349-
350- for ttype, glob_str in TTYPES.iteritems():
351- res_files = glob(os.path.join(WORKSPACE, glob_str))
352- for res_file in res_files:
353- _line = ' Test type: {}\n'.format(ttype)
354- logging.debug(_line)
355- results.append(_line)
356- _line = ('Results (limited to the last '
357- '{} lines) from {}:'.format(LLIMIT, res_file))
358- logging.debug(_line)
359- results.append(_line)
360- with open(res_file) as _file:
361- res_lines = [f_line.rstrip() for f_line in _file][-LLIMIT:]
362- logging.debug(res_lines)
363- results.extend(res_lines)
364-
365- contexts[0]['results_summary'] = '\n'.join(results)
366-
367- logging.debug('contexts: {}'.format(contexts))
368+ something_ran = False
369+ for trigger_test, tt_attrs in conf_map['mp-trigger-tests'].iteritems():
370+ # look for try touchfiles
371+ try_files = []
372+ logging.debug('Checking for {} try files'.format(trigger_test))
373+ for try_masq in tt_attrs['try-masq']:
374+ these_try_files = glob(os.path.join(WORKSPACE, try_masq))
375+ try_files.extend(these_try_files)
376+ if len(try_files) > 0:
377+ something_ran = True
378+ logging.info('Found {} try file(s)'.format(trigger_test))
379+ else:
380+ # did not run
381+ logging.info('No {} try file(s) found'.format(trigger_test))
382+ continue
383+ # look for result files
384+ res_files = []
385+ logging.debug('Checking result masq for {}'.format(trigger_test))
386+ for res_masq in tt_attrs['result-masq']:
387+ these_res_files = glob(os.path.join(WORKSPACE, res_masq))
388+ res_files.extend(these_res_files)
389+ if len(res_files) > 0:
390+ logging.info('Found {} results file(s)'.format(trigger_test))
391+ # handle results files
392+ for res_file in res_files:
393+ llimit = conf_map['mp-conf']['line-limit']
394+ _line = ('\n{} Results (max last {} lines) from \n{}:'.format(
395+ trigger_test.upper(), llimit, res_file))
396+ results.append(_line)
397+ with open(res_file) as _file:
398+ res_lines = [f_line.rstrip() for f_line in _file][-llimit:]
399+ results.extend(res_lines)
400+ else:
401+ _line = ('\n{} Results not found.'.format(trigger_test.upper()))
402+ results.append(_line)
403+ logging.info('No {} results files found to '
404+ 'include'.format(trigger_test))
405+ # look for fail touchfiles
406+ logging.debug('Checking for {} fyi files'.format(trigger_test))
407+ passed = True
408+ for fail_masq in tt_attrs['fail-masq']:
409+ logging.debug('Checking fail masq: {}'.format(fail_masq))
410+ fyis = glob(os.path.join(WORKSPACE, fail_masq))
411+ if len(fyis) > 0:
412+ passed = False
413+ logging.debug('Found {} fyi file(s)'.format(trigger_test))
414+ # handle fyi files
415+ for fyi in fyis:
416+ _line = ' {} FAIL: {}'.format(
417+ trigger_test.upper(),
418+ os.path.split(fyi)[1][8:].replace('.', ' '))
419+ logging.debug(_line)
420+ summary.append(_line)
421+ else:
422+ logging.info('No "fyi" files found to '
423+ 'include {}'.format(fail_masq))
424+ # ran and didn't fail
425+ if passed:
426+ _line = (' {} OK: believed to pass, but you should '
427+ 'confirm results'.format(trigger_test.upper()))
428+ summary.append(_line)
429+
430+ if not something_ran:
431+ logging.error('It appears that nothing ran here.')
432+ sys.exit(1)
433+
434+ # add summary and results to context for template
435+ contexts[0]['results_summary'] = '\n'.join(summary)
436+ contexts[0]['results_summary'] += '\n'
437+ contexts[0]['results_summary'] += '\n'.join(results)
438
439 # create mp comment file
440 logging.info('Creating mp-comment file')
441 comment_filename = create_mp_comment_file(contexts,
442 source='mp-comment.tmpl',
443- out_file='mp-comment.{}')
444+ out_file='mp-comment.{}',
445+ params=params)
446
447- # read mp comment file
448+ # read mp comment file and display to console
449+ subject = '[UOSCI] test result for {}'.format(DISPLAY_NAME)
450+ logging.debug('Subject: {}'.format(subject))
451 f = open(comment_filename, 'r')
452 comment = f.read()
453 f.close()
454-
455 if not opts.quiet:
456 logging.info('Comment:\n')
457+ print '-' * 80
458+ print subject
459 print comment
460+ print '-' * 80
461+
462+ # check for sandbox override (a noise avoider during dev)
463+ if conf_map['mp-conf']['mp-comment-sandbox']:
464+ lp_branch_url = conf_map['mp-conf']['sandbox-lp-branch-url']
465+ mp_url = conf_map['mp-conf']['sandbox-mp-url']
466+ logging.info('Sandbox is ENABLED: comments, if '
467+ 'enabled, will hit {} instead'.format(mp_url))
468
469 # post mp comment
470- if not opts.dry:
471- logging.debug('Connecting to Launchpad API')
472- launchpad = osci_utils.lpl_connect(anonymous=False)
473-
474- lp_branch_url = "lp:ubuntu-openstack-ci"
475- mp_url = 'https://code.launchpad.net/~1chb1n/ubuntu-openstack-ci/mptest0/+merge/238615'
476-
477- logging.debug('Looking up MP object from LP API')
478- mp = osci_utils.lpl_get_mp(launchpad, mp_url, lp_branch_url)
479- if mp:
480+ logging.debug('Connecting to LP via API')
481+ launchpad = osci_utils.lpl_connect(anonymous=False)
482+
483+ logging.debug('Looking up MP object from LP API')
484+ mp = osci_utils.lpl_get_mp(launchpad, mp_url, lp_branch_url)
485+ if mp:
486+ if not opts.dry and not opts.no_post:
487 logging.info('Posting comment to {}'.format(mp_url))
488- subject = '[UOSCI] test result for {}'.format(DISPLAY_NAME)
489 osci_utils.lpl_mp_post_comment(launchpad, mp, subject, comment)
490 else:
491- logging.error('Merge proposal not found for '
492- '{} on {}'.format(mp_url, lp_branch_url))
493- sys.exit(1)
494+ logging.info('Not posting comment due to options')
495+ else:
496+ logging.error('Merge proposal not found for '
497+ '{} on {}'.format(mp_url, lp_branch_url))
498+ sys.exit(1)
499
500
501 if __name__ == '__main__':
502+ print 'Ubuntu OSCI Merge Proposal Commentator'
503 main()
504
505=== modified file 'populate/mappings.yaml'
506--- populate/mappings.yaml 2014-10-10 15:16:27 +0000
507+++ populate/mappings.yaml 2014-10-17 19:16:56 +0000
508@@ -13,17 +13,24 @@
509 state-file: 'branch-state'
510 mp-state-file: 'mp-state'
511
512+mp-conf:
513+ line-limit: 25
514+# post ALL MP comments to this alternate MP when mp-comment-sandbox is True
515+# ie. contain the noise during osci dev
516+ mp-comment-sandbox: False
517+ sandbox-lp-branch-url: 'lp:ubuntu-openstack-ci'
518+ sandbox-mp-url: 'https://code.launchpad.net/~1chb1n/ubuntu-openstack-ci/mptest0/+merge/238615'
519+
520 # merge proposal status to trigger tests
521 mp-status-filter:
522- - "Needs review"
523-# - "Work in progress"
524-# - "Approved"
525-# - "Needs review"
526-# - "Rejected"
527-# - "Merged"
528-# - "Code failed to merge"
529-# - "Queued"
530-# - "Superseded"
531+ - 'Needs review'
532+# - 'Work in progress'
533+# - 'Approved'
534+# - 'Rejected'
535+# - 'Merged'
536+# - 'Code failed to merge'
537+# - 'Queued'
538+# - 'Superseded'
539
540 # the openstack version which shipped with an ubuntu release
541 # not used by OSCI code yet
542@@ -105,3 +112,53 @@
543 # - trusty-juno-staging
544 - utopic-juno
545 # - utopic-juno-proposed
546+
547+mp-trigger-tests:
548+ lint:
549+ order: 100
550+ funcs:
551+ - 'run_lint_test'
552+ try-masq:
553+ - 'try-lint*'
554+ result-masq:
555+ - 'make-lint.*'
556+ fail-masq:
557+ - 'fyi-lint.*.failed'
558+ - 'fyi-lint.*.missing'
559+ unit:
560+ order: 120
561+ funcs:
562+ - 'run_un_test'
563+ try-masq:
564+ - 'try-unit*'
565+ result-masq:
566+ - 'unit-test.*'
567+ fail-masq:
568+ - 'fyi-unit.*.failed'
569+ - 'fyi-unit.*.missing'
570+ amulet:
571+ order: 180
572+ funcs:
573+ - 'run_amulet_test'
574+ try-masq:
575+ - 'try-amul*'
576+ result-masq:
577+ - 'make-test.*'
578+ fail-masq:
579+ - 'fyi-amul.*.failed'
580+ - 'fyi-amul.*.missing'
581+ deploy:
582+ order: 199
583+ funcs:
584+ - 'run_deploy_test'
585+ try-masq:
586+ - 'try-depl*'
587+ result-masq:
588+ - 'deployer.*'
589+ - 'configure.*'
590+ - 'tempstack-configure.*'
591+ - 'tempest.*'
592+ fail-masq:
593+ - 'fyi-depl.*.failed'
594+ - 'fyi-depl.*.missing'
595+# - 'fyi-depl.*.bad'
596
597=== modified file 'populate/mp-comment.tmpl'
598--- populate/mp-comment.tmpl 2014-10-16 22:14:46 +0000
599+++ populate/mp-comment.tmpl 2014-10-17 19:16:56 +0000
600@@ -1,15 +1,20 @@
601+UOSCI bot says:
602+This MP triggered a test on the Ubuntu OSCI system. Here is a summary of results.
603+
604+{{BUILD_DISPLAY_NAME}}
605 {{JOB_NAME}}
606-This MP triggered a test on the Ubuntu OSCI system ({{JENKINS_URL}}), which is currently on a Canonical private network while it is in development. We wanted you to have feedback now, so here is a summary of a test which was triggered by this MP. Tests are triggered if the proposed branch revno/revid changes, or if this MP is placed into "Needs review" status after being otherwise for > 1hr. Human review of results is recommended.
607-
608-{{DISPLAY_NAME}}
609- MP URL: {{MP_TRIGGER}}
610- Build name: {{BUILD_DISPLAY_NAME}}
611- Proposed branch: {{MP_SRC_BR}}
612-
613-Additional details and artifacts are available internally:
614- {{BUILD_URL}}
615+
616+This build:
617+{{BUILD_URL}}
618+
619+MP URL:
620+{{MP_TRIGGER}}
621+
622+Proposed branch:
623+{{MP_SRC_BR}}
624
625 Results summary:
626 {{results_summary}}
627
628-{{BUILD_URL}}
629+Ubuntu OSCI Jenkins is currently in development on a Canonical private network, but we plan to publish results to a public instance soon. Tests are triggered if the proposed branch rev changes, or if the MP is placed into "Needs review" status after being otherwise for >= 1hr. Human review of results is still recommended.
630+{{JENKINS_URL}}

Subscribers

People subscribed via source and target branches