Merge "fuel, armband: Add post mortem log collection"
[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     # POD, INSTALLER, AND BRANCH MAPPING
22     # -------------------------------
23     # CI POD's
24     # -------------------------------
25     #        euphrates
26     # -------------------------------
27     pod:
28       - armband-baremetal:
29           slave-label: armband-baremetal
30           installer: fuel
31           <<: *euphrates
32       - armband-virtual:
33           slave-label: armband-virtual
34           installer: fuel
35           <<: *euphrates
36       # -------------------------------
37       #        master
38       # -------------------------------
39       - armband-baremetal:
40           slave-label: armband-baremetal
41           installer: fuel
42           <<: *master
43       - armband-virtual:
44           slave-label: armband-virtual
45           installer: fuel
46           <<: *master
47     # -------------------------------
48     #       scenarios
49     # -------------------------------
50     scenario:
51       # HA scenarios
52       - 'os-nosdn-nofeature-ha':
53           auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
54       - 'os-odl-nofeature-ha':
55           auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
56
57       # NOHA scenarios
58       - 'os-nosdn-nofeature-noha':
59           auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
60
61     jobs:
62       - '{installer}-{scenario}-{pod}-daily-{stream}'
63       - '{installer}-deploy-{pod}-daily-{stream}'
64
65 ########################
66 # job templates
67 ########################
68 - job-template:
69     name: '{installer}-{scenario}-{pod}-daily-{stream}'
70
71     disabled: '{obj:disabled}'
72
73     concurrent: false
74
75     properties:
76       - logrotate-default
77       - throttle:
78           enabled: true
79           max-total: 4
80           max-per-node: 1
81           option: 'project'
82       - build-blocker:
83           use-build-blocker: true
84           blocking-jobs:
85             - '{installer}-os-.*?-{pod}-daily-.*'
86             - 'armband-verify-.*'
87           block-level: 'NODE'
88
89     wrappers:
90       - build-name:
91           name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
92
93     triggers:
94       - '{auto-trigger-name}'
95
96     parameters:
97       - project-parameter:
98           project: '{project}'
99           branch: '{branch}'
100       - '{installer}-defaults':
101           gs-pathname: '{gs-pathname}'
102       - '{slave-label}-defaults':
103           installer: '{installer}'
104       - string:
105           name: DEPLOY_SCENARIO
106           default: '{scenario}'
107
108     builders:
109       - trigger-builds:
110           - project: '{installer}-deploy-{pod}-daily-{stream}'
111             current-parameters: false
112             predefined-parameters:
113               DEPLOY_SCENARIO={scenario}
114             same-node: true
115             block: true
116       - trigger-builds:
117           - project: 'functest-{installer}-{pod}-arm-daily-{stream}'
118             current-parameters: false
119             predefined-parameters:
120               DEPLOY_SCENARIO={scenario}
121             block: true
122             same-node: true
123             block-thresholds:
124               build-step-failure-threshold: 'never'
125               failure-threshold: 'never'
126               unstable-threshold: 'FAILURE'
127       - trigger-builds:
128           - project: 'yardstick-{installer}-{pod}-daily-{stream}'
129             current-parameters: false
130             predefined-parameters:
131               DEPLOY_SCENARIO={scenario}
132             block: true
133             same-node: true
134             block-thresholds:
135               build-step-failure-threshold: 'never'
136               failure-threshold: 'never'
137               unstable-threshold: 'FAILURE'
138       # 1.dovetail only master, based on D release
139       # 2.here the stream means the SUT stream,
140       #   dovetail stream is defined in its own job
141       # 3.only proposed_tests testsuite here(refstack, ha, ipv6, bgpvpn)
142       # 4.not used for release criteria or compliance,
143       #   only to debug the dovetail tool bugs with arm pods
144       # 5.only run against scenario os-(nosdn|odl)-(nofeature-bgpvpn)-ha
145       - conditional-step:
146           condition-kind: regex-match
147           regex: os-(nosdn|odl)-(nofeature|bgpvpn)-ha
148           label: '{scenario}'
149           steps:
150             - trigger-builds:
151                 - project: 'dovetail-{installer}-{pod}-proposed_tests-master'
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       # Armband uses Fuel's log collection project job, no need to duplicate
162       - trigger-builds:
163           - project: 'fuel-collect-logs-{pod}-daily-{stream}'
164             current-parameters: false
165             block: true
166             same-node: true
167             block-thresholds:
168               build-step-failure-threshold: 'never'
169               failure-threshold: 'never'
170               unstable-threshold: 'FAILURE'
171
172 - job-template:
173     name: '{installer}-deploy-{pod}-daily-{stream}'
174
175     concurrent: true
176
177     properties:
178       - logrotate-default
179       - throttle:
180           enabled: true
181           max-total: 4
182           max-per-node: 1
183           option: 'project'
184       - build-blocker:
185           use-build-blocker: true
186           blocking-jobs:
187             - '{installer}-deploy-{pod}-daily-{stream}'
188             - '{installer}-deploy-generic-daily-.*'
189           block-level: 'NODE'
190
191     parameters:
192       - project-parameter:
193           project: '{project}'
194           branch: '{branch}'
195       - '{installer}-defaults':
196           gs-pathname: '{gs-pathname}'
197       - '{slave-label}-defaults':
198           installer: '{installer}'
199       - string:
200           name: DEPLOY_SCENARIO
201           default: 'os-odl-nofeature-ha'
202
203     scm:
204       - git-scm
205
206     wrappers:
207       - build-name:
208           name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
209
210     builders:
211       - shell:
212           !include-raw-escape: ../fuel/fuel-deploy.sh
213
214     publishers:
215       - email:
216           recipients: armband@enea.com
217       - email-jenkins-admins-on-failure
218
219 ########################
220 # trigger macros
221 ########################
222 # CI PODs
223 # ----------------------------------------------------------------
224 # Enea Armband CI Baremetal Triggers running against master branch
225 # ----------------------------------------------------------------
226 - trigger:
227     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger'
228     triggers:
229       - timed: '0 16 * * 2,4,6'
230 - trigger:
231     name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-master-trigger'
232     triggers:
233       - timed: ''
234 - trigger:
235     name: 'fuel-os-odl-nofeature-ha-armband-baremetal-master-trigger'
236     triggers:
237       - timed: '0 16 * * 1,3,5,7'
238 # ---------------------------------------------------------------------
239 # Enea Armband CI Baremetal Triggers running against euphrates branch
240 # ---------------------------------------------------------------------
241 - trigger:
242     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-euphrates-trigger'
243     triggers:
244       - timed: '0 1 * * 2,4,6'
245 - trigger:
246     name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-euphrates-trigger'
247     triggers:
248       - timed: ''
249 - trigger:
250     name: 'fuel-os-odl-nofeature-ha-armband-baremetal-euphrates-trigger'
251     triggers:
252       - timed: '0 1 * * 1,3,5,7'
253 # --------------------------------------------------------------
254 # Enea Armband CI Virtual Triggers running against master branch
255 # --------------------------------------------------------------
256 - trigger:
257     name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-master-trigger'
258     triggers:
259       - timed: ''
260 - trigger:
261     name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-master-trigger'
262     triggers:
263       - timed: ''
264 - trigger:
265     name: 'fuel-os-odl-nofeature-ha-armband-virtual-master-trigger'
266     triggers:
267       - timed: ''
268 # -------------------------------------------------------------------
269 # Enea Armband CI Virtual Triggers running against euphrates branch
270 # -------------------------------------------------------------------
271 - trigger:
272     name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-euphrates-trigger'
273     triggers:
274       - timed: ''
275 - trigger:
276     name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-euphrates-trigger'
277     triggers:
278       - timed: ''
279 - trigger:
280     name: 'fuel-os-odl-nofeature-ha-armband-virtual-euphrates-trigger'
281     triggers:
282       - timed: ''