552cdb413d8c30af42d4d8b2e5cb9babbdf26b14
[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 - 'lxd'
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_LXD_HOST
46 name: 'LXD_HOST'
47 default: 'ci-host-amd64-1a.internal.efficios.com'
48 description: 'The address of the LXD cluster to publish to'
49 required: true
50 - string: &images_parameters_LXD_INSTANCE_PROFILE
51 name: 'LXD_INSTANCE_PROFILE'
52 default: 'ci-rootnode'
53 description: 'The LXD 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_LXD_HOST
85 - string:
86 <<: *images_parameters_LXD_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: 'LXC_CI_GIT_URL'
101 default: 'https://github.com/lxc/lxc-ci.git'
102 - string:
103 name: 'LXC_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 - _images_parameters_debian_defaults: &images_parameters_debian_defaults
120 name: 'image_parameters_debian_defaults'
121 parameters:
122 - bool:
123 name: 'SKIP_BASE_IMAGES'
124 default: false
125 - bool:
126 name: 'SKIP_PROFILE_IMAGES'
127 default: false
128 - choice: &images_parameters_arch_filter
129 name: 'ARCH_FILTER'
130 choices:
131 - all
132 - amd64
133 - i386
134 - arm64
135 - armhf
136 - ppc64el
137 - riscv64
138 - s390x
139 - choice: &images_parameters_image_type_filter
140 name: 'IMAGE_TYPE_FILTER'
141 choices:
142 - all
143 - lxd
144 - vm
145 - choice: &images_parameters_profile_filter
146 name: 'PROFILE_FILTER'
147 choices:
148 - all
149 - ci-node
150 - developer
151 - choice:
152 name: 'RELEASE_FILTER'
153 choices:
154 - all
155 - bullseye
156 - bookworm
157 - trixie
158 - sid
159 - string:
160 <<: *images_parameters_GIT_URL
161 - string:
162 <<: *images_parameters_GIT_BRANCH
163
164 ## Defaults
165 - defaults:
166 name: imagebuilder
167 concurrent: true
168 description: |
169 <p>Job is managed by Jenkins Job Builder</p>
170 project-type: freestyle
171 publishers:
172 - workspace-cleanup
173 wrappers:
174 - workspace-cleanup
175 - timestamps
176 - ansicolor
177 - credentials-binding:
178 - ssh-user-private-key:
179 credential-id: 'f3c907b6-7485-49e1-afe1-4df24fac4ca1'
180 key-file-variable: SSH_PRIVATE_KEY
181 username-variable: SSH_USERNAME
182 passphrase-variable: SSH_PASSWORD
183 - file:
184 credential-id: 'f3f08275-59ef-42ff-9de5-9beafc7435b8'
185 variable: LXD_CLIENT_CERT
186 - file:
187 credential-id: '0debf23b-191b-4cdf-8a25-04e9a7092a67'
188 variable: LXD_CLIENT_KEY
189 - inject: {}
190
191 ## Templates
192 - job-template:
193 name: images_imagebuilder_{OS}
194 defaults: imagebuilder
195 description: |
196 This pipeline starts distrobuilder and imagebuilder jobs for {OS}
197
198 <p>Job is managed by Jenkins Job Builder</p>
199 project-type: pipeline
200 <<: *images_parameters_debian_defaults
201 IMAGE_TYPES:
202 - lxd
203 - vm
204 PROFILES:
205 - ci-node
206 - developer
207 dsl: !include-jinja2: pipelines/images/default.groovy
208
209 - job-template:
210 name: images_distrobuilder
211 defaults: imagebuilder
212 node: 'deb12-amd64-rootnode'
213 <<: *images_parameters_distrobuilder_defaults
214 <<: *images_properties_defaults
215 builders:
216 - shell: !include-raw-escape: pipelines/images/distrobuild.sh
217
218 - job-template:
219 name: images_imagebuilder
220 defaults: imagebuilder
221 node: 'deb12-amd64-rootnode'
222 <<: *images_parameters_imagebuilder_defaults
223 <<: *images_properties_defaults
224 builders:
225 - shell: !include-raw-escape: pipelines/images/imagebuild.sh
226
227
228 ## Views
229 - view-template:
230 name: 'Images'
231 view-type: list
232 regex: 'image.*'
233
234 ## Projects
235
236 - project:
237 name: images_imagebuilder_OS
238 OS:
239 - debian
240 ARCHES:
241 - i386
242 - amd64
243 RELEASES:
244 - bullseye
245 - bookworm
246 - trixie
247 - sid
248 jobs:
249 - 'images_imagebuilder_{OS}'
250 - project:
251 name: images_basejobs
252 jobs:
253 - 'images_imagebuilder'
254 - 'images_distrobuilder'
255 - project:
256 name: images_imagebuilder_views
257 views:
258 - Images
This page took 0.035577 seconds and 3 git commands to generate.