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