fuel, armband: Limit dovetail to Danube branch
[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.dovetail only master, based on D release
162       # 2.here the stream means the SUT stream,
163       #   dovetail stream is defined in its own job
164       # 3.only proposed_tests testsuite here(refstack, ha, ipv6, bgpvpn)
165       # 4.not used for release criteria or compliance,
166       #   only to debug the dovetail tool bugs with arm pods
167       # 5.only run against scenario os-(nosdn|odl)-(nofeature-bgpvpn)-ha
168       - conditional-step:
169           condition-kind: and
170           condition-operands:
171             - condition-kind: regex-match
172               regex: os-(nosdn|odl)-(nofeature|bgpvpn)-ha
173               label: '{scenario}'
174             - condition-kind: regex-match
175               regex: 'danube'
176               label: '{stream}'
177           steps:
178             - trigger-builds:
179                 - project: 'dovetail-{installer}-{pod}-proposed_tests-master'
180                   current-parameters: false
181                   predefined-parameters:
182                     DEPLOY_SCENARIO={scenario}
183                   block: true
184                   same-node: true
185                   block-thresholds:
186                     build-step-failure-threshold: 'never'
187                     failure-threshold: 'never'
188                     unstable-threshold: 'FAILURE'
189       # Armband uses Fuel's log collection project job, no need to duplicate
190       - conditional-step:
191           condition-kind: not
192           condition-operand:
193             condition-kind: regex-match
194             regex: 'danube'
195             label: '{stream}'
196           steps:
197             - trigger-builds:
198                 - project: 'fuel-collect-logs-{deploy-type}-daily-{stream}'
199                   current-parameters: false
200                   predefined-parameters:
201                     DEPLOY_SCENARIO={scenario}
202                   block: true
203                   same-node: true
204                   block-thresholds:
205                     build-step-failure-threshold: 'never'
206                     failure-threshold: 'never'
207                     unstable-threshold: 'FAILURE'
208
209 - job-template:
210     name: '{installer}-deploy-{pod}-daily-{stream}'
211
212     concurrent: true
213
214     properties:
215       - logrotate-default
216       - throttle:
217           enabled: true
218           max-total: 4
219           max-per-node: 1
220           option: 'project'
221       - build-blocker:
222           use-build-blocker: true
223           blocking-jobs:
224             - '{installer}-deploy-{pod}-daily-{stream}'
225             - '{installer}-deploy-generic-daily-.*'
226           block-level: 'NODE'
227
228     parameters:
229       - project-parameter:
230           project: '{project}'
231           branch: '{branch}'
232       - '{installer}-defaults':
233           gs-pathname: '{gs-pathname}'
234       - '{slave-label}-defaults':
235           installer: '{installer}'
236       - string:
237           name: DEPLOY_SCENARIO
238           default: 'os-odl-nofeature-ha'
239
240     scm:
241       - git-scm
242
243     wrappers:
244       - build-name:
245           name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
246
247     builders:
248       - shell:
249           !include-raw-escape: ../fuel/fuel-deploy.sh
250
251     publishers:
252       - email:
253           recipients: armband@enea.com
254       - email-jenkins-admins-on-failure
255
256 ########################
257 # trigger macros
258 ########################
259 # CI PODs
260 # ----------------------------------------------------------------
261 # Enea Armband CI Baremetal Triggers running against master branch
262 # ----------------------------------------------------------------
263 - trigger:
264     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger'
265     triggers:
266       - timed: '0 16 * * 2,4,6'
267 - trigger:
268     name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-master-trigger'
269     triggers:
270       - timed: ''
271 - trigger:
272     name: 'fuel-os-odl-nofeature-ha-armband-baremetal-master-trigger'
273     triggers:
274       - timed: '0 16 * * 1,3,5,7'
275 # ---------------------------------------------------------------------
276 # Enea Armband CI Baremetal Triggers running against euphrates branch
277 # ---------------------------------------------------------------------
278 - trigger:
279     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-euphrates-trigger'
280     triggers:
281       - timed: '0 1 * * 2,4,6'
282 - trigger:
283     name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-euphrates-trigger'
284     triggers:
285       - timed: ''
286 - trigger:
287     name: 'fuel-os-odl-nofeature-ha-armband-baremetal-euphrates-trigger'
288     triggers:
289       - timed: '0 1 * * 1,3,5,7'
290 # --------------------------------------------------------------
291 # Enea Armband CI Virtual Triggers running against master branch
292 # --------------------------------------------------------------
293 - trigger:
294     name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-master-trigger'
295     triggers:
296       - timed: ''
297 - trigger:
298     name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-master-trigger'
299     triggers:
300       - timed: ''
301 - trigger:
302     name: 'fuel-os-odl-nofeature-ha-armband-virtual-master-trigger'
303     triggers:
304       - timed: ''
305 # -------------------------------------------------------------------
306 # Enea Armband CI Virtual Triggers running against euphrates branch
307 # -------------------------------------------------------------------
308 - trigger:
309     name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-euphrates-trigger'
310     triggers:
311       - timed: ''
312 - trigger:
313     name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-euphrates-trigger'
314     triggers:
315       - timed: ''
316 - trigger:
317     name: 'fuel-os-odl-nofeature-ha-armband-virtual-euphrates-trigger'
318     triggers:
319       - timed: ''