jjb: Use `**/*.log` to glob TAP log files
[lttng-ci.git] / jobs / images.yml
1 ---
2 ## Anchors
3 - _images_parameters_default: &images_parameters_imagebuilder_defaults
4 name: 'images_parameters_imagebuilder_defaults'
5 parameters:
6 - string: &images_parameters_OS
7 name: 'OS'
8 description: 'OS name'
9 default: 'debian'
10 required: true
11 - string: &images_parameters_RELEASE
12 name: 'RELEASE'
13 description: 'OS release number or name'
14 default: 'bookworm'
15 required: true
16 - choice: &images_parameters_ARCH
17 name: 'ARCH'
18 description: 'Target architecture'
19 choices:
20 - amd64
21 - i386
22 - arm64
23 - armhf
24 - ppc64el
25 - s390x
26 - riscv64
27 - string: &images_parameters_VARIANT
28 name: 'VARIANT'
29 default: 'cloud'
30 description: 'The base image variant to build off of'
31 required: true
32 - choice: &images_parameters_IMAGE_TYPE
33 name: 'IMAGE_TYPE'
34 choices:
35 - 'incus'
36 - 'vm'
37 description: 'The type of image to create'
38 - choice:
39 name: 'PROFILE'
40 choices:
41 - 'ci-node'
42 - 'developer'
43 description: 'The ansible group to apply to the image'
44 required: true
45 - string: &images_parameters_INCUS_HOST
46 name: 'INCUS_HOST'
47 default: 'ci-host-amd64-1a.internal.efficios.com'
48 description: 'The address of the incus cluster to publish to'
49 required: true
50 - string: &images_parameters_INCUS_INSTANCE_PROFILE
51 name: 'INCUS_INSTANCE_PROFILE'
52 default: 'ci-rootnode'
53 description: 'The Incus instance profile to use for temporary instances when building images'
54 required: true
55 - string: &images_parameters_GIT_URL
56 name: 'GIT_URL'
57 default: 'https://github.com/lttng/lttng-ci.git'
58 description: 'The source of the repo containing the ansible playbooks'
59 required: true
60 - string: &images_parameters_GIT_BRANCH
61 name: 'GIT_BRANCH'
62 default: 'master'
63 description: 'The branch or commit of the ansible playbook repo to checkout'
64 required: true
65 - bool: &images_parameters_TEST
66 name: 'TEST'
67 default: true
68 description: 'Enable to launch a container of the published image as a test'
69
70 - _images_parameters_default: &images_parameters_distrobuilder_defaults
71 name: 'images_parameters_distrobuilder_defaults'
72 parameters:
73 - string:
74 <<: *images_parameters_OS
75 - string:
76 <<: *images_parameters_RELEASE
77 - choice:
78 <<: *images_parameters_ARCH
79 - string:
80 <<: *images_parameters_VARIANT
81 - choice:
82 <<: *images_parameters_IMAGE_TYPE
83 - string:
84 <<: *images_parameters_INCUS_HOST
85 - string:
86 <<: *images_parameters_INCUS_INSTANCE_PROFILE
87 - string:
88 <<: *images_parameters_GIT_URL
89 - string:
90 <<: *images_parameters_GIT_BRANCH
91 - bool:
92 <<: *images_parameters_TEST
93 - string:
94 name: 'DISTROBUILDER_GIT_URL'
95 default: 'https://github.com/lxc/distrobuilder.git'
96 - string:
97 name: 'DISTROBUILDER_GIT_BRANCH'
98 default: 'main'
99 - string:
100 name: 'INCUS_CI_GIT_URL'
101 default: 'https://github.com/lxc/lxc-ci.git'
102 - string:
103 name: 'INCUS_CI_GIT_BRANCH'
104 default: 'main'
105 - string:
106 name: 'GO_VERSION'
107 default: '1.21.3'
108
109 - _images_properties_defaults: &images_properties_defaults
110 name: 'images_properties_defaults'
111 properties:
112 - build-discarder:
113 num-to-keep: 20
114 - throttle:
115 option: project
116 max-total: 4
117 matrix-builds: false
118
119 ## Defaults
120 - defaults:
121 name: imagebuilder
122 concurrent: true
123 description: |
124 <p>Job is managed by Jenkins Job Builder</p>
125 project-type: freestyle
126 publishers:
127 - workspace-cleanup
128 wrappers:
129 - workspace-cleanup
130 - timestamps
131 - ansicolor
132 - credentials-binding:
133 - ssh-user-private-key:
134 credential-id: 'f3c907b6-7485-49e1-afe1-4df24fac4ca1'
135 key-file-variable: SSH_PRIVATE_KEY
136 username-variable: SSH_USERNAME
137 passphrase-variable: SSH_PASSWORD
138 - file:
139 credential-id: 'f3f08275-59ef-42ff-9de5-9beafc7435b8'
140 variable: INCUS_CLIENT_CERT
141 - file:
142 credential-id: '0debf23b-191b-4cdf-8a25-04e9a7092a67'
143 variable: INCUS_CLIENT_KEY
144 - text:
145 credential-id: SLES_REGISTRATION_CODE_amd64
146 variable: SLES_REGISTRATION_CODE_amd64
147 # When it needs to match ansible_architecture
148 - text:
149 credential-id: SLES_REGISTRATION_CODE_amd64
150 variable: SLES_REGISTRATION_CODE_x86_64
151 - inject: {}
152
153 ## Templates
154 - job-template:
155 name: images_imagebuilder_{OS}
156 defaults: imagebuilder
157 description: |
158 This pipeline starts distrobuilder and imagebuilder jobs for {OS}
159
160 <p>Job is managed by Jenkins Job Builder</p>
161 project-type: pipeline
162 parameters: '{obj:parameters}'
163 IMAGE_TYPES:
164 - incus
165 - vm
166 PROFILES:
167 - ci-node
168 - developer
169 sandbox: true
170 dsl: !include-jinja2: pipelines/images/default.groovy
171
172 - job-template:
173 name: images_distrobuilder
174 defaults: imagebuilder
175 node: 'deb12-amd64-rootnode'
176 <<: *images_parameters_distrobuilder_defaults
177 <<: *images_properties_defaults
178 builders:
179 - shell: !include-raw-escape: pipelines/images/distrobuild.sh
180
181 - job-template:
182 name: images_imagebuilder
183 defaults: imagebuilder
184 node: 'deb12-amd64-rootnode'
185 <<: *images_parameters_imagebuilder_defaults
186 <<: *images_properties_defaults
187 builders:
188 - shell: !include-raw-escape: pipelines/images/imagebuild.sh
189
190
191 ## Views
192 - view-template:
193 name: 'Images'
194 view-type: list
195 regex: 'image.*'
196
197 ## Projects
198
199 - project:
200 name: images_imagebuilder_OS
201 OS:
202 - debian
203 ARCHES:
204 - i386
205 - amd64
206 - armhf
207 - arm64
208 RELEASES:
209 - bullseye
210 - bookworm
211 - trixie
212 - sid
213 jobs:
214 - 'images_imagebuilder_{OS}'
215 parameters:
216 - bool: &images_parameters_SKIP_BASE_IMAGES
217 name: 'SKIP_BASE_IMAGES'
218 default: false
219 - bool: &images_parameters_SKIP_PROFILE_IMAGES
220 name: 'SKIP_PROFILE_IMAGES'
221 default: false
222 - choice: &images_parameters_ARCH_FILTER
223 name: 'ARCH_FILTER'
224 choices:
225 - all
226 - amd64
227 - i386
228 - arm64
229 - armhf
230 - ppc64el
231 - riscv64
232 - s390x
233 - choice: &images_parameters_IMAGE_TYPE_FILTER
234 name: 'IMAGE_TYPE_FILTER'
235 choices:
236 - all
237 - incus
238 - vm
239 - choice: &images_parameters_PROFILE_FILTER
240 name: 'PROFILE_FILTER'
241 choices:
242 - all
243 - ci-node
244 - developer
245 - choice:
246 name: 'RELEASE_FILTER'
247 choices:
248 - all
249 - bullseye
250 - bookworm
251 - trixie
252 - sid
253 - string:
254 <<: *images_parameters_GIT_URL
255 - string:
256 <<: *images_parameters_GIT_BRANCH
257
258 - project:
259 name: images_imagebuilder_rockylinux
260 OS:
261 - rockylinux
262 ARCHES:
263 - amd64
264 RELEASES:
265 - '8'
266 - '9'
267 parameters:
268 - bool:
269 <<: *images_parameters_SKIP_BASE_IMAGES
270 - bool:
271 <<: *images_parameters_SKIP_PROFILE_IMAGES
272 - choice:
273 <<: *images_parameters_ARCH_FILTER
274 choices:
275 - all
276 - amd64
277 - choice:
278 <<: *images_parameters_IMAGE_TYPE_FILTER
279 - choice:
280 <<: *images_parameters_PROFILE_FILTER
281 - choice:
282 name: 'RELEASE_FILTER'
283 choices:
284 - 'all'
285 - '8'
286 - '9'
287 - string:
288 <<: *images_parameters_GIT_URL
289 - string:
290 <<: *images_parameters_GIT_BRANCH
291 jobs:
292 - 'images_imagebuilder_{OS}'
293
294 - project:
295 name: images_imagebuilder_SLES
296 OS:
297 - sles
298 ARCHES:
299 - amd64
300 RELEASES:
301 # 12.5 Doesn't currently work well with Incus either as a container or a VM
302 # * 12.5 has systemd 228, which doesn't support cgroups v2. Hosts _could_
303 # be configured to disable the unified cgroup hierarchy in order to have
304 # this version systemd work correctly.
305 # * Running as a QEMU VM, virtio_scsi isn't correctly able to bring the
306 # virtual disks online. The version of incus currently deployed doesn't
307 # support the io.bus option to use virtio-blk instead.
308 # - '12.5'
309 - '15.4'
310 - '15.5'
311 parameters:
312 - bool:
313 <<: *images_parameters_SKIP_BASE_IMAGES
314 default: true
315 - bool:
316 <<: *images_parameters_SKIP_PROFILE_IMAGES
317 - choice:
318 <<: *images_parameters_ARCH_FILTER
319 choices:
320 - all
321 - amd64
322 - choice:
323 <<: *images_parameters_IMAGE_TYPE_FILTER
324 - choice:
325 <<: *images_parameters_PROFILE_FILTER
326 - choice:
327 name: 'RELEASE_FILTER'
328 choices:
329 - 'all'
330 - '15.4'
331 - '15.5'
332 - string:
333 <<: *images_parameters_GIT_URL
334 - string:
335 <<: *images_parameters_GIT_BRANCH
336 jobs:
337 - 'images_imagebuilder_{OS}'
338
339 - project:
340 name: images_imagebuilder_ubuntu
341 OS:
342 - ubuntu
343 ARCHES:
344 - amd64
345 RELEASES:
346 - focal
347 - jammy
348 - noble
349 parameters:
350 - bool:
351 <<: *images_parameters_SKIP_BASE_IMAGES
352 - bool:
353 <<: *images_parameters_SKIP_PROFILE_IMAGES
354 - choice:
355 <<: *images_parameters_ARCH_FILTER
356 choices:
357 - all
358 - amd64
359 - choice:
360 <<: *images_parameters_IMAGE_TYPE_FILTER
361 - choice:
362 <<: *images_parameters_PROFILE_FILTER
363 - choice:
364 name: 'RELEASE_FILTER'
365 choices:
366 - 'all'
367 - 'focal'
368 - 'jammy'
369 - 'noble'
370 - string:
371 <<: *images_parameters_GIT_URL
372 - string:
373 <<: *images_parameters_GIT_BRANCH
374 jobs:
375 - 'images_imagebuilder_{OS}'
376
377 - project:
378 name: images_basejobs
379 jobs:
380 - 'images_imagebuilder'
381 - 'images_distrobuilder'
382 - project:
383 name: images_imagebuilder_views
384 views:
385 - Images
This page took 0.039933 seconds and 5 git commands to generate.