summaryrefslogtreecommitdiffstats
path: root/job-cfg/d-i.yaml.py
diff options
context:
space:
mode:
Diffstat (limited to 'job-cfg/d-i.yaml.py')
-rwxr-xr-xjob-cfg/d-i.yaml.py166
1 files changed, 102 insertions, 64 deletions
diff --git a/job-cfg/d-i.yaml.py b/job-cfg/d-i.yaml.py
index 91a64245..2641f6e5 100755
--- a/job-cfg/d-i.yaml.py
+++ b/job-cfg/d-i.yaml.py
@@ -38,10 +38,10 @@ langs = [
{'vi': {'langname': 'Vietnamese'}},
{'zh_CN': {'langname': 'Chinese (zh_CN)'}},
{'zh_TW': {'langname': 'Chinese (zh_TW)'}}
- ]
+]
non_pdf_langs = ['el', 'vi', 'ja', 'zh_CN', 'zh_TW']
-non_po_langs = ['ca', 'cs', 'de', 'en', 'fr', 'it', 'pt_BR']
+non_po_langs = ['ca', 'cs', 'de', 'en', 'fr', 'it', 'pt_BR']
pkgs = """
anna
@@ -146,73 +146,97 @@ zipl-installer
def scm_svn(po, inc_regs=None):
- if inc_regs == None:
- inc_regs = [ os.path.join('/trunk/manual/', 'po' if po else '', '{lang}', '.*') ]
-
- return [{'svn': {'excluded-commit-messages': '',
- 'url': 'svn://anonscm.debian.org/svn/d-i/trunk',
- 'basedir': '.',
- 'workspaceupdater': 'update',
- 'included-regions': inc_regs,
- 'excluded-users': '',
- 'exclusion-revprop-name': '',
- 'excluded-regions': '',
- 'viewvc-url': 'http://anonscm.debian.org/viewvc/d-i/trunk'}}]
+ if inc_regs is None:
+ inc_regs = [ os.path.join('/trunk/manual/',
+ 'po' if po else '', '{lang}', '.*') ]
+
+ return [{'svn':
+ {'excluded-commit-messages': '',
+ 'url': 'svn://anonscm.debian.org/svn/d-i/trunk',
+ 'basedir': '.',
+ 'workspaceupdater': 'update',
+ 'included-regions': inc_regs,
+ 'excluded-users': '',
+ 'exclusion-revprop-name': '',
+ 'excluded-regions': '',
+ 'viewvc-url': 'http://anonscm.debian.org/viewvc/d-i/trunk'}}]
desc_str = {
- 'html': 'Builds the {langname} html version of the installation-guide for all architectures. Triggered by SVN commits to <code>svn://anonscm.debian.org/svn/d-i/trunk/manual{popath}/{lang}/<code>. After successful build <a href="https://jenkins.debian.net/job/d-i_manual_{lang}_pdf">d-i_manual_{lang}_pdf</a> is triggered.',
- 'pdf': 'Builds the {langname} pdf version of the installation-guide for all architectures. Triggered by successful build of <a href="https://jenkins.debian.net/job/d-i_manual_{lang}_html">d-i_manual_{lang}_html</a>.',
- 'instguide': 'Builds the installation-guide package. Triggered by SVN commits to <code>svn://anonscm.debian.org/svn/d-i/</code> matching these patterns: <pre>{include}</pre>'
+ 'html': (
+ 'Builds the {langname} html version of the installation-guide '
+ 'for all architectures. Triggered by SVN commits to '
+ '<code>svn://anonscm.debian.org/svn/d-i/trunk/manual{popath}/{lang}/'
+ '</code>. After successful build '
+ '<a href="https://jenkins.debian.net/job/d-i_manual_{lang}_pdf">'
+ 'd-i_manual_{lang}_pdf</a> is triggered.'),
+ 'pdf': (
+ 'Builds the {langname} pdf version of the installation-guide '
+ 'for all architectures. '
+ 'Triggered by successful build of '
+ '<a href="https://jenkins.debian.net/job/d-i_manual_{lang}_html">'
+ 'd-i_manual_{lang}_html</a>.'),
+ 'instguide': (
+ 'Builds the installation-guide package. Triggered by SVN commits to '
+ '<code>svn://anonscm.debian.org/svn/d-i/</code> '
+ 'matching these patterns: <pre>{include}</pre>')
}
def lr(keep):
- return {'artifactDaysToKeep': -1, 'daysToKeep': keep, 'numToKeep': 30, 'artifactNumToKeep': -1}
+ return {'artifactDaysToKeep': -1, 'daysToKeep': keep,
+ 'numToKeep': 30, 'artifactNumToKeep': -1}
def publ_email(irc=None):
- r = ['jenkins+' + irc] if irc != None else []
+ r = ['jenkins+' + irc] if irc is not None else []
r.append('qa-jenkins-scm@lists.alioth.debian.org')
return {'email': {'recipients': ' '.join(r)}}
-def publ(fmt=None,trigger=None,irc=None):
+def publ(fmt=None, trigger=None, irc=None):
p = []
- if trigger != None:
- p = [{'trigger': {'project': 'd-i_manual_{lang}_pdf', 'threshold': 'UNSTABLE'}}]
+ if trigger is not None:
+ p = [{'trigger': {'project': 'd-i_manual_{lang}_pdf',
+ 'threshold': 'UNSTABLE'}}]
p.extend([
- {'logparser': {'parse-rules': '/srv/jenkins/logparse/debian-installer.rules',
- 'unstable-on-warning': 'true',
- 'fail-on-error': 'true'}}])
+ {'logparser': {
+ 'parse-rules': '/srv/jenkins/logparse/debian-installer.rules',
+ 'unstable-on-warning': 'true',
+ 'fail-on-error': 'true'}}])
p.append(publ_email(irc=irc))
- if fmt != None:
- p.append({'archive': {'artifacts': fmt + '/**/*.*', 'latest-only': True}})
+ if fmt is not None:
+ p.append({'archive': {'artifacts': fmt + '/**/*.*',
+ 'latest-only': True}})
return p
-# make the yaml a bit shorter, with aliases -- if that's unhelpful move the variables inside prop()
-sb_about = {'sidebar': {'url': 'https://jenkins.debian.net/userContent/about.html',
- 'text': 'About jenkins.debian.net',
- 'icon': '/userContent/images/debian-swirl-24x24.png'}}
+# make the yaml a bit shorter, with aliases
+# if that's unhelpful move the variables inside prop()
+sb_about = {
+ 'sidebar': {'url': 'https://jenkins.debian.net/userContent/about.html',
+ 'text': 'About jenkins.debian.net',
+ 'icon': '/userContent/images/debian-swirl-24x24.png'}}
+
+sb_profitbricks = {
+ 'sidebar': {'url': 'http://www.profitbricks.co.uk',
+ 'text': 'Sponsored by Profitbricks',
+ 'icon': '/userContent/images/profitbricks-24x24.png'}}
-sb_profitbricks = {'sidebar': {'url': 'http://www.profitbricks.co.uk',
- 'text': 'Sponsored by Profitbricks',
- 'icon': '/userContent/images/profitbricks-24x24.png'}}
def prop(type='manual', priority=None):
p = [sb_about,
- {'sidebar': {'url': 'https://jenkins.debian.net/view/d-i_' + type + '/',
+ {'sidebar': {'url': 'https://jenkins.debian.net/view/d-i_'+type+'/',
'text': 'debian-installer ' + type + ' jobs',
'icon': '/userContent/images/debian-jenkins-24x24.png'}},
sb_profitbricks]
- if priority != None:
- p.append( {'priority-sorter': {'priority': str(priority)}} )
+ if priority is not None:
+ p.append({'priority-sorter': {'priority': str(priority)}})
return p
def jtmpl(act, target, fmt=None, po=''):
n = ['{name}', act, target]
- d = ['{name}', act ]
+ d = ['{name}', act]
if fmt:
n.append(fmt)
d.append(fmt)
@@ -224,25 +248,27 @@ def jtmpl(act, target, fmt=None, po=''):
def jobspec_svn(key, name, desc, defaults=None,
priority=120, logkeep=None, trigger=None, publishers=None,
- lang='', fmt='', po='', inc_regs=None ):
- shell_cmd = [p for p in ['/srv/jenkins/bin/d-i_manual.sh',lang,fmt,po] if p != '']
- j = {'scm': scm_svn(po=po,inc_regs=inc_regs),
+ lang='', fmt='', po='', inc_regs=None):
+ shell_cmd = [p for p in ['/srv/jenkins/bin/d-i_manual.sh',
+ lang, fmt, po] if p != '']
+ j = {'scm': scm_svn(po=po, inc_regs=inc_regs),
'project-type': 'freestyle',
'builders': [{'shell': ' '.join(shell_cmd)}],
'properties': prop(priority=priority),
'name': name}
- j['publishers'] = publishers if publishers != None else publ(fmt=fmt,trigger=trigger,irc='debian-boot')
+ j['publishers'] = (publishers if publishers is not None
+ else publ(fmt=fmt, trigger=trigger, irc='debian-boot'))
j['description'] = desc
j['description'] += ' {do_not_edit}'
- if defaults != None:
+ if defaults is not None:
j['defaults'] = defaults
- if trigger != None:
+ if trigger is not None:
j['triggers'] = [{'pollscm': trigger}]
- if logkeep != None:
+ if logkeep is not None:
j['logrotate'] = lr(logkeep)
- return { key : j }
+ return {key: j}
@@ -250,16 +276,16 @@ def jobspec_svn(key, name, desc, defaults=None,
data = []
data.append(
- {'defaults': { 'name': 'd-i',
- 'logrotate': lr(90),
- 'project-type': 'freestyle',
- 'properties': prop(type='misc')}})
+ {'defaults': {'name': 'd-i',
+ 'logrotate': lr(90),
+ 'project-type': 'freestyle',
+ 'properties': prop(type='misc')}})
templs = []
for f in ['html', 'pdf']:
for po in ['', 'po2xml']:
- n = ['{name}','manual', f]
+ n = ['{name}', 'manual', f]
if po != '':
n.append(po)
data.append(
@@ -268,15 +294,18 @@ for f in ['html', 'pdf']:
lang='{lang}',
fmt=f,
po=po,
- trigger='{trg}' if not (f == 'pdf' and po == '') else None,
+ trigger=('{trg}' if not (f == 'pdf' and po == '')
+ else None),
desc=desc_str[f],
logkeep=90))
- templs.append(jtmpl(act='manual',target='{lang}',fmt=f,po=po))
+ templs.append(jtmpl(act='manual', target='{lang}', fmt=f, po=po))
data.extend(
[{'defaults': {
'name': '{name}-{act}',
- 'description': 'Builds debian packages in sid from git {branchdesc}, triggered by pushes to <pre>{gitrepo}</pre> {do_not_edit}',
+ 'description': ('Builds debian packages in sid from git {branchdesc}, '
+ 'triggered by pushes to <pre>{gitrepo}</pre> '
+ '{do_not_edit}'),
'triggers': [{'pollscm': '{trg}'}],
'scm': [{'git': {'url': '{gitrepo}',
'branches': ['{branch}']}}],
@@ -286,7 +315,7 @@ data.extend(
'logrotate': lr(90),
'publishers': publ(irc='debian-boot')}}])
-templs.append(jtmpl(act='{act}',target='{pkg}'))
+templs.append(jtmpl(act='{act}', target='{pkg}'))
data.extend(templs)
data.append(
@@ -316,7 +345,8 @@ data.append(
{'job-template': {
'defaults': 'd-i',
'name': '{name}_maintenance',
- 'description': 'Cleanup and monitor so that there is a predictable environment.{do_not_edit}',
+ 'description': ('Cleanup and monitor so that there is '
+ 'a predictable environment.{do_not_edit}'),
'triggers': [{'timed': '30 5 * * *'}],
'builders': [{'shell': '/srv/jenkins/bin/maintenance.sh {name}'}],
'properties': prop(priority=150),
@@ -339,7 +369,9 @@ data.append(
{'job-group': {
'name': '{name}_manual_pdf_group',
'jobs': ['{name}_manual_{lang}_pdf'],
- 'lang': [l for l in langs if (list(l.keys())[0] not in non_pdf_langs) and (list(l.keys())[0] in non_po_langs)],
+ 'lang': [l for l in langs
+ if (list(l.keys())[0] not in non_pdf_langs)
+ and (list(l.keys())[0] in non_po_langs)],
'trg': '',
'fmt': 'pdf'}})
@@ -356,7 +388,9 @@ data.append(
{'job-group': {
'name': '{name}_manual_pdf_po2xml_group',
'jobs': ['{name}_manual_{lang}_pdf_po2xml'],
- 'lang': [l for l in langs if (list(l.keys())[0] not in non_pdf_langs) and (list(l.keys())[0] not in non_po_langs)],
+ 'lang': [l for l in langs
+ if (list(l.keys())[0] not in non_pdf_langs)
+ and (list(l.keys())[0] not in non_po_langs)],
'trg': '',
'fmt': 'pdf'}})
@@ -385,15 +419,19 @@ data.append(
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>.',
+ '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': [
'{name}_maintenance',
'{name}_check_jenkins_jobs',
{'{name}_manual': {
- 'include': ( '/trunk/manual/debian/.*\n'
- '/trunk/manual/po/.*\n'
- '/trunk/manual/doc/.*\n'
- '/trunk/manual/scripts/.*' ),
+ 'include': ('/trunk/manual/debian/.*\n'
+ '/trunk/manual/po/.*\n'
+ '/trunk/manual/doc/.*\n'
+ '/trunk/manual/scripts/.*'),
'trg': 'H/15 * * * *'}},
'{name}_manual_html_group',
'{name}_manual_pdf_group',
@@ -402,4 +440,4 @@ data.append(
'{name}_build-group',
'{name}_pu-build-group']}})
-sys.stdout.write( dump(data, Dumper=Dumper) )
+sys.stdout.write(dump(data, Dumper=Dumper))