Merge "change Dovetail CI jobs on Fuel"
[releng.git] / jjb / armband / armband-ci-jobs.yml
1 ---
2 # jenkins job templates for Armband
3 - project:
4     name: 'armband-ci'
5     project: 'armband'
6
7     # -------------------------------
8     # BRANCH ANCHORS
9     # -------------------------------
10     master: &master
11       stream: master
12       branch: '{stream}'
13       gs-pathname: ''
14       disabled: false
15     euphrates: &euphrates
16       stream: euphrates
17       branch: 'stable/{stream}'
18       gs-pathname: '/{stream}'
19       disabled: false
20     # -------------------------------
21     # DEPLOY TYPE ANCHORS
22     # -------------------------------
23     baremetal: &baremetal
24       installer: 'fuel'
25       deploy-type: 'baremetal'
26       slave-label: 'armband-{deploy-type}'
27     virtual: &virtual
28       installer: 'fuel'
29       deploy-type: 'virtual'
30       slave-label: 'armband-{deploy-type}'
31     # -------------------------------
32     # POD, INSTALLER, AND BRANCH MAPPING
33     # -------------------------------
34     # CI POD's
35     # -------------------------------
36     #        euphrates
37     # -------------------------------
38     pod:
39       # yamllint disable rule:key-duplicates
40       - armband-baremetal:
41           <<: *baremetal
42           <<: *euphrates
43       - armband-virtual:
44           <<: *virtual
45           <<: *euphrates
46       # -------------------------------
47       #        master
48       # -------------------------------
49       - armband-baremetal:
50           <<: *baremetal
51           <<: *master
52       - armband-virtual:
53           <<: *virtual
54           <<: *master
55     # yamllint enable rule:key-duplicates
56     # -------------------------------
57     #       scenarios
58     # -------------------------------
59     scenario:
60       # HA scenarios
61       - 'os-nosdn-nofeature-ha':
62           auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
63       - 'os-odl-nofeature-ha':
64           auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
65
66       # NOHA scenarios
67       - 'os-nosdn-nofeature-noha':
68           auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
69
70     jobs:
71       - '{installer}-{scenario}-{pod}-daily-{stream}'
72       - '{installer}-deploy-{pod}-daily-{stream}'
73
74 ########################
75 # job templates
76 ########################
77 - job-template:
78     name: '{installer}-{scenario}-{pod}-daily-{stream}'
79
80     disabled: '{obj:disabled}'
81
82     concurrent: false
83
84     properties:
85       - logrotate-default
86       - throttle:
87           enabled: true
88           max-total: 4
89           max-per-node: 1
90           option: 'project'
91       - build-blocker:
92           use-build-blocker: true
93           blocking-jobs:
94             - '{installer}-os-.*?-{pod}-daily-.*'
95             - 'armband-verify-.*'
96           block-level: 'NODE'
97
98     wrappers:
99       - build-name:
100           name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
101
102     triggers:
103       - '{auto-trigger-name}'
104
105     parameters:
106       - project-parameter:
107           project: '{project}'
108           branch: '{branch}'
109       - '{installer}-defaults':
110           gs-pathname: '{gs-pathname}'
111       - '{slave-label}-defaults':
112           installer: '{installer}'
113       - string:
114           name: DEPLOY_SCENARIO
115           default: '{scenario}'
116
117     builders:
118       - trigger-builds:
119           - project: '{installer}-deploy-{pod}-daily-{stream}'
120             current-parameters: false
121             predefined-parameters:
122               DEPLOY_SCENARIO={scenario}
123             same-node: true
124             block: true
125       - conditional-step:
126           condition-kind: not
127           condition-operand:
128             condition-kind: regex-match
129             regex: 'danube'
130             label: '{stream}'
131           steps:
132             - trigger-builds:
133                 - project: 'functest-{installer}-{pod}-arm-daily-{stream}'
134                   current-parameters: false
135                   predefined-parameters:
136                     DEPLOY_SCENARIO={scenario}
137                   block: true
138                   same-node: true
139                   block-thresholds:
140                     build-step-failure-threshold: 'never'
141                     failure-threshold: 'never'
142                     unstable-threshold: 'FAILURE'
143       - conditional-step:
144           condition-kind: not
145           condition-operand:
146             condition-kind: regex-match
147             regex: 'danube'
148             label: '{stream}'
149           steps:
150             - trigger-builds:
151                 - project: 'yardstick-{installer}-{pod}-daily-{stream}'
152                   current-parameters: false
153                   predefined-parameters:
154                     DEPLOY_SCENARIO={scenario}
155                   block: true
156                   same-node: true
157                   block-thresholds:
158                     build-step-failure-threshold: 'never'
159                     failure-threshold: 'never'
160                     unstable-threshold: 'FAILURE'
161       # 1.here the stream means the SUT stream, dovetail stream is defined in its own job
162       # 2.testsuite proposed_tests here is for new test cases planning to add into OVP
163       # 3.run proposed_tests on Monday, Wednesday and Friday against ha scenario
164       # 4.testsuite default here is for the test cases already added into OVP
165       # 5.run default testsuite on Tuesday against ha scenario
166       # 6.not used for release criteria or compliance,
167       #   only to debug the dovetail tool bugs with arm pods
168       - conditional-step:
169           condition-kind: and
170           condition-operands:
171             - condition-kind: regex-match
172               regex: '*-ha'
173               label: '{scenario}'
174             - condition-kind: day-of-week
175               day-selector: select-days
176               days:
177                 MON: true
178                 WED: true
179                 FRI: true
180               use-build-time: true
181           steps:
182             - trigger-builds:
183                 - project: 'dovetail-{installer}-{pod}-proposed_tests-{stream}'
184                   current-parameters: false
185                   predefined-parameters:
186                     DEPLOY_SCENARIO={scenario}
187                   block: true
188                   same-node: true
189                   block-thresholds:
190                     build-step-failure-threshold: 'never'
191                     failure-threshold: 'never'
192                     unstable-threshold: 'FAILURE'
193       - conditional-step:
194           condition-kind: and
195           condition-operands:
196             - condition-kind: regex-match
197               regex: '*-ha'
198               label: '{scenario}'
199             - condition-kind: day-of-week
200               day-selector: select-days
201               days:
202                 TUES: true
203               use-build-time: true
204           steps:
205             - trigger-builds:
206                 - project: 'dovetail-{installer}-{pod}-default-{stream}'
207                   current-parameters: false
208                   predefined-parameters:
209                     DEPLOY_SCENARIO={scenario}
210                   block: true
211                   same-node: true
212                   block-thresholds:
213                     build-step-failure-threshold: 'never'
214                     failure-threshold: 'never'
215                     unstable-threshold: 'FAILURE'
216       # Armband uses Fuel's log collection project job, no need to duplicate
217       - conditional-step:
218           condition-kind: not
219           condition-operand:
220             condition-kind: regex-match
221             regex: 'danube'
222             label: '{stream}'
223           steps:
224             - trigger-builds:
225                 - project: 'fuel-collect-logs-{deploy-type}-daily-{stream}'
226                   current-parameters: false
227                   predefined-parameters:
228                     DEPLOY_SCENARIO={scenario}
229                   block: true
230                   same-node: true
231                   block-thresholds:
232                     build-step-failure-threshold: 'never'
233                     failure-threshold: 'never'
234                     unstable-threshold: 'FAILURE'
235
236 - job-template:
237     name: '{installer}-deploy-{pod}-daily-{stream}'
238
239     concurrent: true
240
241     properties:
242       - logrotate-default
243       - throttle:
244           enabled: true
245           max-total: 4
246           max-per-node: 1
247           option: 'project'
248       - build-blocker:
249           use-build-blocker: true
250           blocking-jobs:
251             - '{installer}-deploy-{pod}-daily-{stream}'
252             - '{installer}-deploy-generic-daily-.*'
253           block-level: 'NODE'
254
255     parameters:
256       - project-parameter:
257           project: '{project}'
258           branch: '{branch}'
259       - '{installer}-defaults':
260           gs-pathname: '{gs-pathname}'
261       - '{slave-label}-defaults':
262           installer: '{installer}'
263       - string:
264           name: DEPLOY_SCENARIO
265           default: 'os-odl-nofeature-ha'
266
267     scm:
268       - git-scm
269
270     wrappers:
271       - build-name:
272           name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
273
274     builders:
275       - shell:
276           !include-raw-escape: ../fuel/fuel-deploy.sh
277
278     publishers:
279       - email:
280           recipients: armband@enea.com
281       - email-jenkins-admins-on-failure
282
283 ########################
284 # trigger macros
285 ########################
286 # CI PODs
287 # ----------------------------------------------------------------
288 # Enea Armband CI Baremetal Triggers running against master branch
289 # ----------------------------------------------------------------
290 - trigger:
291     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger'
292     triggers:
293       - timed: '0 1 * * 2,4,6'
294 - trigger:
295     name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-master-trigger'
296     triggers:
297       - timed: ''
298 - trigger:
299     name: 'fuel-os-odl-nofeature-ha-armband-baremetal-master-trigger'
300     triggers:
301       - timed: '0 1 * * 1,3,5,7'
302 # ---------------------------------------------------------------------
303 # Enea Armband CI Baremetal Triggers running against euphrates branch
304 # ---------------------------------------------------------------------
305 - trigger:
306     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-euphrates-trigger'
307     triggers:
308       - timed: ''
309 - trigger:
310     name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-euphrates-trigger'
311     triggers:
312       - timed: ''
313 - trigger:
314     name: 'fuel-os-odl-nofeature-ha-armband-baremetal-euphrates-trigger'
315     triggers:
316       - timed: ''
317 # --------------------------------------------------------------
318 # Enea Armband CI Virtual Triggers running against master branch
319 # --------------------------------------------------------------
320 - trigger:
321     name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-master-trigger'
322     triggers:
323       - timed: ''
324 - trigger:
325     name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-master-trigger'
326     triggers:
327       - timed: ''
328 - trigger:
329     name: 'fuel-os-odl-nofeature-ha-armband-virtual-master-trigger'
330     triggers:
331       - timed: ''
332 # -------------------------------------------------------------------
333 # Enea Armband CI Virtual Triggers running against euphrates branch
334 # -------------------------------------------------------------------
335 - trigger:
336     name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-euphrates-trigger'
337     triggers:
338       - timed: ''
339 - trigger:
340     name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-euphrates-trigger'
341     triggers:
342       - timed: ''
343 - trigger:
344     name: 'fuel-os-odl-nofeature-ha-armband-virtual-euphrates-trigger'
345     triggers:
346       - timed: ''