1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
#!/usr/bin/python
architectures = """
i386
hppa
mips mips64el mipsel
powerpc ppc64
s390x
sparc sparc64
x32
""".split()
mono_architectures = """
armel armhf musl-linux-armhf arm64 musl-linux-arm64
alpha
musl-linux-i386
m68k
musl-linux-mips musl-linux-mipsel
powerpcel powerpcspe ppc64el
or1k
sh4
""".split()
release_architectures = """
armel armhf arm64
i386
mips mipsel
powerpc ppc64el
s390x
""".split()
architectures += mono_architectures
gcc_versions = """4.9 5""".split()
print("""
- defaults:
name: rebootstrap
project-type: freestyle
properties:
- sidebar:
url: https://jenkins.debian.net/userContent/about.html
text: About jenkins.debian.net
icon: /userContent/images/debian-swirl-24x24.png
- sidebar:
url: https://jenkins.debian.net/view/rebootstrap/
text: All rebootstrap jobs
icon: /userContent/images/debian-jenkins-24x24.png
- sidebar:
url: http://www.profitbricks.co.uk
text: Sponsored by Profitbricks
icon: /userContent/images/profitbricks-24x24.png
- priority:
job-prio: '150'
- throttle:
max-total: 4
max-per-node: 4
enabled: true
option: category
categories:
- rebootstrap
description: '{my_description}{do_not_edit}'
logrotate:
daysToKeep: 90
numToKeep: 10
artifactDaysToKeep: -1
artifactNumToKeep: -1
scm:
- git:
url: 'git://anonscm.debian.org/users/helmutg/rebootstrap.git'
branches:
- '{my_branchname}'
builders:
- shell: 'export LC_ALL=C ; /srv/jenkins/bin/chroot-run.sh sid minimal ./bootstrap.sh HOST_ARCH={my_arch} {my_params}'
publishers:
- logparser:
parse-rules: '/srv/jenkins/logparse/rebootstrap.rules'
unstable-on-warning: 'false'
fail-on-error: 'false'
- email:
recipients: 'jenkins+debian-bootstrap helmutg@debian.org'
triggers:
- pollscm: '*/6 * * * *'
""")
for arch in sorted(architectures):
for gccver in sorted(gcc_versions):
for nobiarch in ["", "_nobiarch"]:
if nobiarch and arch in mono_architectures:
continue
for supported in ["", "_supported"]:
if (nobiarch or arch.startswith("musl-linux-")) and supported:
continue
for debbindiff in ["", "_debbindiff"]:
if debbindiff and (arch not in release_architectures or gccver != "4.9"):
continue
print("""
- job-template:
defaults: rebootstrap
name: '{name}_%(arch)s_gcc%(gccshortver)s%(nobiarch)s%(supported)s%(debbindiff)s'""" %
dict(arch=arch, gccshortver=gccver.replace(".", ""), nobiarch=nobiarch, supported=supported, debbindiff=debbindiff))
print("""
- project:
name: rebootstrap
do_not_edit: '<br><br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/job-cfg/rebootstrap.yaml.py">rebootstrap.yaml.py</a>.'
jobs:""")
for arch in sorted(architectures):
for gccver in sorted(gcc_versions):
for nobiarch in (False, True):
if nobiarch and arch in mono_architectures:
continue
for supported in (False, True):
if (nobiarch or arch.startswith("musl-linux-")) and supported:
continue
for debbindiff in (False, True):
if debbindiff and (arch not in release_architectures or gccver != "4.9"):
continue
print(
""" - '{name}_%(suffix)s':
my_arch: '%(arch)s'
my_params: 'GCC_VER=%(gccver)s ENABLE_MULTILIB=%(multilib_value)s ENABLE_MULTIARCH_GCC=%(multiarch_gcc_value)s ENABLE_DEBBINDIFF=%(debbindiff_value)s'
my_description: 'Verify bootstrappability of Debian using gcc-%(gccver)s%(nobiarch_comment)s for %(arch)s%(supported_comment)s%(debbindiff_comment)s'
my_branchname: 'jenkins_%(suffix)s'""" %
dict(arch=arch,
suffix=arch + "_gcc" + gccver.replace(".", "") + ("_nobiarch" if nobiarch else "") + ("_supported" if supported else "") + ("_debbindiff" if debbindiff else ""),
gccver=gccver,
multilib_value="no" if nobiarch else "yes",
nobiarch_comment=" without multilib" if nobiarch else "",
multiarch_gcc_value="no" if supported else "yes",
supported_comment=" using the supported method" if supported else "",
debbindiff_value="yes" if debbindiff else "no",
debbindiff_comment=" showing debbindiffs" if debbindiff else ""))
|