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