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