From e48d7bd503e8edd45c6a6c16b769831398e4873b Mon Sep 17 00:00:00 2001 From: Philip Hands Date: Thu, 4 Jun 2015 10:29:56 +0100 Subject: d-i.yaml.py: merge the template and job loops --- job-cfg/d-i.yaml.py | 67 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 38 insertions(+), 29 deletions(-) (limited to 'job-cfg') 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': '

Job configuration source is d-i.yaml.py.', - 'jobs': jobs()}}) + 'jobs': jobs}}) sys.stdout.write( dump(data, Dumper=Dumper) ) -- cgit v1.2.3-70-g09d2