diff options
author | Philip Hands <phil@hands.com> | 2015-06-04 10:29:56 +0100 |
---|---|---|
committer | Philip Hands <phil@hands.com> | 2015-06-04 10:30:24 +0100 |
commit | e48d7bd503e8edd45c6a6c16b769831398e4873b (patch) | |
tree | 4dd60fab93bf79b852e5addee530377b6fd72ab5 | |
parent | 838ae874df8bcdc3a87b33d3e4df20f8a860f743 (diff) | |
download | jenkins.debian.net-e48d7bd503e8edd45c6a6c16b769831398e4873b.tar.xz |
d-i.yaml.py: merge the template and job loops
-rwxr-xr-x | job-cfg/d-i.yaml.py | 67 |
1 files changed, 38 insertions, 29 deletions
diff --git a/job-cfg/d-i.yaml.py b/job-cfg/d-i.yaml.py index a49300d4..493a0e94 100755 --- a/job-cfg/d-i.yaml.py +++ b/job-cfg/d-i.yaml.py @@ -257,24 +257,41 @@ def jobspec_svn(key, name, desc=None, defaults=None, return { key : j } -def jobs(): - j = [ '{name}_maintenance', - '{name}_check_jenkins_jobs', - {'{name}_manual': {'include': ( '/trunk/manual/debian/.*\n' - '/trunk/manual/po/.*\n' - '/trunk/manual/doc/.*\n' - '/trunk/manual/scripts/.*' )}}] - j.extend( - [{'_'.join(['{name}','manual',l,f]): {'lang': l, 'languagename': langs[l]}} - for f in ['html', 'pdf'] - for l in sorted(langs.keys()) - if not (f=='pdf' and l in non_pdf_langs)]) - j.extend( - [{'_'.join(['{name}',act,pkg]): {'gitrepo': 'git://git.debian.org/git/d-i/' + pkg}} - for act in ['build', 'pu-build'] - for pkg in pkgs]) - return j - +def templs_jobs(): + templates = [] + jobs = [ '{name}_maintenance', + '{name}_check_jenkins_jobs', + {'{name}_manual': {'include': ( '/trunk/manual/debian/.*\n' + '/trunk/manual/po/.*\n' + '/trunk/manual/doc/.*\n' + '/trunk/manual/scripts/.*' )}}] + def tj_append(t, j): + templates.append(t) + jobs.append(j) + + # this is a bit contrived: in order to only need to go through each loop once + # we're producing the template and it's job at the same time in a tuple, then + # using a local function to append those results onto their apropriate lists + # This is done mostly as a stepping ston to discarding the teplates (assuming + # that is possible, which we'll find out...) + [tj_append(t,j) for (t,j) in [ + ( + jtmpl(act='manual',target=l,fmt=f,po=(l not in non_po_langs)), + {'_'.join(['{name}','manual',l,f]): {'lang': l, 'languagename': langs[l]}} + ) + for f in ['html', 'pdf'] + for l in sorted(langs.keys()) + if not (f=='pdf' and l in non_pdf_langs)]] + [tj_append(t,j) for (t,j) in [ + ( + jtmpl(act=act,target=pkg), + {'_'.join(['{name}',act,pkg]): {'gitrepo': 'git://git.debian.org/git/d-i/' + pkg}} + ) + for act in ['build', 'pu-build'] + for pkg in pkgs]] + return (templates, jobs) + +# -- here we build the data to be dumped as yaml data = [] data.append( @@ -342,21 +359,13 @@ data.append( 'unstable-on-warning': 'true', 'fail-on-error': 'true'}}, publ_email('debian-boot')]}}) +(templs, jobs) = templs_jobs() -data.extend( - [jtmpl(act='manual',target=l,fmt=f,po=(l not in non_po_langs)) - for f in ['html', 'pdf'] - for l in sorted(langs.keys()) - if not (f=='pdf' and l in non_pdf_langs)]) - -data.extend( - [jtmpl(act=act,target=pkg) - for act in ['build', 'pu-build'] - for pkg in pkgs]) +data.extend(templs) data.append( {'project': { 'name': 'd-i', 'do_not_edit': '<br><br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/job-cfg/d-i.yaml.py">d-i.yaml.py</a>.', - 'jobs': jobs()}}) + 'jobs': jobs}}) sys.stdout.write( dump(data, Dumper=Dumper) ) |