Merge "Fix Yamllint violations for jjb/armband"
[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: true
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, dovetail stream is defined in its own job
140       # 3.only proposed_tests testsuite here(refstack, ha, ipv6, bgpvpn)
141       # 4.not used for release criteria or compliance,
142       #   only to debug the dovetail tool bugs with arm pods
143       # 5.only run against scenario os-(nosdn|odl)-(nofeature-bgpvpn)-ha
144       - conditional-step:
145           condition-kind: regex-match
146           regex: os-(nosdn|odl)-(nofeature|bgpvpn)-ha
147           label: '{scenario}'
148           steps:
149             - trigger-builds:
150                 - project: 'dovetail-{installer}-{pod}-proposed_tests-{stream}'
151                   current-parameters: false
152                   predefined-parameters:
153                     DEPLOY_SCENARIO={scenario}
154                   block: true
155                   same-node: true
156                   block-thresholds:
157                     build-step-failure-threshold: 'never'
158                     failure-threshold: 'never'
159                     unstable-threshold: 'FAILURE'
160
161 - job-template:
162     name: '{installer}-deploy-{pod}-daily-{stream}'
163
164     concurrent: true
165
166     properties:
167       - logrotate-default
168       - throttle:
169           enabled: true
170           max-total: 4
171           max-per-node: 1
172           option: 'project'
173       - build-blocker:
174           use-build-blocker: true
175           blocking-jobs:
176             - '{installer}-deploy-{pod}-daily-{stream}'
177             - '{installer}-deploy-generic-daily-.*'
178           block-level: 'NODE'
179
180     parameters:
181       - project-parameter:
182           project: '{project}'
183           branch: '{branch}'
184       - '{installer}-defaults':
185           gs-pathname: '{gs-pathname}'
186       - '{slave-label}-defaults':
187           installer: '{installer}'
188       - string:
189           name: DEPLOY_SCENARIO
190           default: 'os-odl-nofeature-ha'
191
192     scm:
193       - git-scm
194
195     wrappers:
196       - build-name:
197           name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
198
199     builders:
200       - shell:
201           !include-raw-escape: ../fuel/fuel-deploy.sh
202
203     publishers:
204       - email:
205           recipients: armband@enea.com
206       - email-jenkins-admins-on-failure
207
208 ########################
209 # trigger macros
210 ########################
211 # CI PODs
212 # ----------------------------------------------------------------
213 # Enea Armband CI Baremetal Triggers running against master branch
214 # ----------------------------------------------------------------
215 - trigger:
216     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger'
217     triggers:
218       - timed: '0 1 * * *'
219 - trigger:
220     name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-master-trigger'
221     triggers:
222       - timed: ''
223 - trigger:
224     name: 'fuel-os-odl-nofeature-ha-armband-baremetal-master-trigger'
225     triggers:
226       - timed: '0 16 * * *'
227 # ---------------------------------------------------------------------
228 # Enea Armband CI Baremetal Triggers running against euphrates branch
229 # ---------------------------------------------------------------------
230 - trigger:
231     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-euphrates-trigger'
232     triggers:
233       - timed: ''
234 - trigger:
235     name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-euphrates-trigger'
236     triggers:
237       - timed: ''
238 - trigger:
239     name: 'fuel-os-odl-nofeature-ha-armband-baremetal-euphrates-trigger'
240     triggers:
241       - timed: ''
242 # --------------------------------------------------------------
243 # Enea Armband CI Virtual Triggers running against master branch
244 # --------------------------------------------------------------
245 - trigger:
246     name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-master-trigger'
247     triggers:
248       - timed: ''
249 - trigger:
250     name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-master-trigger'
251     triggers:
252       - timed: ''
253 - trigger:
254     name: 'fuel-os-odl-nofeature-ha-armband-virtual-master-trigger'
255     triggers:
256       - timed: ''
257 # -------------------------------------------------------------------
258 # Enea Armband CI Virtual Triggers running against euphrates branch
259 # -------------------------------------------------------------------
260 - trigger:
261     name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-euphrates-trigger'
262     triggers:
263       - timed: ''
264 - trigger:
265     name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-euphrates-trigger'
266     triggers:
267       - timed: ''
268 - trigger:
269     name: 'fuel-os-odl-nofeature-ha-armband-virtual-euphrates-trigger'
270     triggers:
271       - timed: ''