KVMFORNFV: Implementing kvmfornfv daily jobs.
[releng.git] / jjb / kvmfornfv / kvmfornfv.yml
1 - project:
2     name: kvmfornfv
3
4     project: '{name}'
5
6     stream:
7         - master:
8             branch: '{stream}'
9             gs-pathname: ''
10             disabled: false
11         - colorado:
12             branch: 'stable/{stream}'
13             gs-pathname: '/{stream}'
14             disabled: false
15 #####################################
16 # patch verification phases
17 #####################################
18     phase:
19         - 'build':
20             slave-label: 'opnfv-build-ubuntu'
21         - 'test':
22             slave-label: 'intel-pod1'
23 #####################################
24 # patch verification phases
25 #####################################
26     testname:
27         - 'Idle_Idle':
28             trigger_time: '@midnight'
29         - 'Stress_Idle':
30             trigger_time: '@midnight+3hours'
31         - 'Packet_Forwarding':
32             trigger_time: '@midnight+6hours'
33 #####################################
34 # patch verification phases
35 #####################################
36     jobs:
37         - 'kvmfornfv-verify-{stream}'
38         - 'kvmfornfv-verify-{phase}-{stream}'
39         - 'kvmfornfv-merge-{stream}'
40         - 'kvmfornfv-{testname}-daily-{stream}'
41         - 'kvmfornfv-{testname}-daily-{phase}-{stream}'
42 #####################################
43 # job templates
44 #####################################
45 - job-template:
46     name: 'kvmfornfv-verify-{stream}'
47
48     project-type: multijob
49
50     disabled: '{obj:disabled}'
51
52     concurrent: true
53
54     properties:
55         - throttle:
56             enabled: true
57             max-total: 3
58             option: 'project'
59
60     parameters:
61         - project-parameter:
62             project: '{project}'
63         - gerrit-parameter:
64             branch: '{branch}'
65         - 'opnfv-build-ubuntu-defaults'
66
67     triggers:
68         - gerrit:
69             trigger-on:
70                 - patchset-created-event:
71                     exclude-drafts: 'false'
72                     exclude-trivial-rebase: 'false'
73                     exclude-no-code-change: 'false'
74                 - draft-published-event
75                 - comment-added-contains-event:
76                     comment-contains-value: 'recheck'
77                 - comment-added-contains-event:
78                     comment-contains-value: 'reverify'
79             projects:
80               - project-compare-type: 'ANT'
81                 project-pattern: '{project}'
82                 branches:
83                   - branch-compare-type: 'ANT'
84                     branch-pattern: '**/{branch}'
85
86     builders:
87         - description-setter:
88             description: "Built on $NODE_NAME"
89         - multijob:
90             name: build
91             condition: SUCCESSFUL
92             projects:
93                 - name: 'kvmfornfv-verify-build-{stream}'
94                   current-parameters: false
95                   predefined-parameters: |
96                     GERRIT_BRANCH=$GERRIT_BRANCH
97                     GERRIT_REFSPEC=$GERRIT_REFSPEC
98                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
99                   node-parameters: false
100                   kill-phase-on: FAILURE
101                   abort-all-job: true
102         - multijob:
103             name: test
104             condition: SUCCESSFUL
105             projects:
106                 - name: 'kvmfornfv-verify-test-{stream}'
107                   current-parameters: false
108                   predefined-parameters: |
109                     GERRIT_BRANCH=$GERRIT_BRANCH
110                     GERRIT_REFSPEC=$GERRIT_REFSPEC
111                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
112                   node-parameters: false
113                   kill-phase-on: FAILURE
114                   abort-all-job: true
115 - job-template:
116     name: 'kvmfornfv-verify-{phase}-{stream}'
117
118     disabled: '{obj:disabled}'
119
120     concurrent: true
121
122     scm:
123         - gerrit-trigger-scm:
124             credentials-id: '{ssh-credentials}'
125             refspec: '$GERRIT_REFSPEC'
126             choosing-strategy: 'gerrit'
127
128     wrappers:
129         - ssh-agent-credentials:
130             users:
131                 - '{ssh-credentials}'
132         - timeout:
133             timeout: 360
134             fail: true
135     parameters:
136         - project-parameter:
137             project: '{project}'
138         - gerrit-parameter:
139             branch: '{branch}'
140         - '{slave-label}-defaults'
141         - 'kvmfornfv-defaults':
142             gs-pathname: '{gs-pathname}'
143
144     builders:
145         - description-setter:
146             description: "Built on $NODE_NAME"
147         - '{project}-verify-{phase}-macro'
148
149 - job-template:
150     name: 'kvmfornfv-merge-{stream}'
151
152     disabled: '{obj:disabled}'
153
154     parameters:
155         - project-parameter:
156             project: '{project}'
157         - gerrit-parameter:
158             branch: '{branch}'
159         - 'opnfv-build-ubuntu-defaults'
160         - 'kvmfornfv-defaults':
161             gs-pathname: '{gs-pathname}'
162
163     scm:
164         - gerrit-trigger-scm:
165             credentials-id: '{ssh-credentials}'
166             refspec: ''
167             choosing-strategy: 'default'
168
169     triggers:
170         - gerrit:
171             trigger-on:
172                 - change-merged-event
173                 - comment-added-contains-event:
174                     comment-contains-value: 'remerge'
175             projects:
176               - project-compare-type: 'ANT'
177                 project-pattern: '{project}'
178                 branches:
179                     - branch-compare-type: 'ANT'
180                       branch-pattern: '**/{branch}'
181
182     builders:
183         - shell:
184             !include-raw: ./kvmfornfv-build.sh
185
186 - job-template:
187     name: 'kvmfornfv-{testname}-daily-{stream}'
188
189     project-type: multijob
190
191     disabled: '{obj:disabled}'
192
193     concurrent: false
194
195     parameters:
196         - project-parameter:
197             project: '{project}'
198         - gerrit-parameter:
199             branch: '{branch}'
200         - 'opnfv-build-ubuntu-defaults'
201         - 'kvmfornfv-defaults':
202             gs-pathname: '{gs-pathname}'
203
204     scm:
205         - gerrit-trigger-scm:
206             credentials-id: '{ssh-credentials}'
207             refspec: ''
208             choosing-strategy: 'default'
209
210     triggers:
211         - timed: '{trigger_time}'
212
213     builders:
214         - description-setter:
215             description: "Built on $NODE_NAME"
216         - multijob:
217             name: build
218             condition: SUCCESSFUL
219             projects:
220                 - name: 'kvmfornfv-Idle_Idle-daily-build-{stream}'
221                   current-parameters: false
222                   node-parameters: false
223                   git-revision: true
224                   kill-phase-on: FAILURE
225                   abort-all-job: true
226         - multijob:
227             name: build
228             condition: SUCCESSFUL
229             projects:
230                 - name: 'kvmfornfv-Stress_Idle-daily-build-{stream}'
231                   current-parameters: false
232                   node-parameters: false
233                   git-revision: true
234                   kill-phase-on: FAILURE
235                   abort-all-job: true
236         - multijob:
237             name: build
238             condition: SUCCESSFUL
239             projects:
240                 - name: 'kvmfornfv-Packet_Forwarding-daily-build-{stream}'
241                   current-parameters: false
242                   node-parameters: false
243                   git-revision: true
244                   kill-phase-on: FAILURE
245                   abort-all-job: true
246
247         - multijob:
248             name: build
249             condition: SUCCESSFUL
250             projects:
251                 - name: 'kvmfornfv-Idle_Idle-daily-test-{stream}'
252                   current-parameters: false
253                   node-parameters: false
254                   git-revision: true
255                   kill-phase-on: FAILURE
256                   abort-all-job: true
257
258         - multijob:
259             name: test
260             condition: SUCCESSFUL
261             projects:
262                 - name: 'kvmfornfv-Stress_Idle-daily-test-{stream}'
263                   current-parameters: false
264                   node-parameters: false
265                   git-revision: true
266                   kill-phase-on: FAILURE
267                   abort-all-job: true
268         - multijob:
269             name: build
270             condition: SUCCESSFUL
271             projects:
272                 - name: 'kvmfornfv-Packet_Forwarding-daily-test-{stream}'
273                   current-parameters: false
274                   node-parameters: false
275                   git-revision: true
276                   kill-phase-on: FAILURE
277                   abort-all-job: true
278
279
280 - job-template:
281     name: 'kvmfornfv-{testname}-daily-{phase}-{stream}'
282
283     disabled: '{obj:disabled}'
284
285     concurrent: false
286
287     scm:
288         - gerrit-trigger-scm:
289             credentials-id: '{ssh-credentials}'
290             refspec: ''
291             choosing-strategy: 'default'
292
293     wrappers:
294         - ssh-agent-credentials:
295             users:
296                 - '{ssh-credentials}'
297         - timeout:
298             timeout: 360
299             fail: true
300     parameters:
301         - project-parameter:
302             project: '{project}'
303         - gerrit-parameter:
304             branch: '{branch}'
305         - '{slave-label}-defaults'
306         - 'kvmfornfv-defaults':
307             gs-pathname: '{gs-pathname}'
308
309     builders:
310         - description-setter:
311             description: "Built on $NODE_NAME"
312         - '{project}-{testname}-daily-{phase}-macro'
313 ########################
314 # parameter macros
315 ########################
316 - parameter:
317     name: 'kvmfornfv-Idle_Idle-daily-test-{stream}'
318     parameters:
319         - string:
320             name: TEST_NAME
321             default: 'idle_idle'
322             description: "Daily job to run cyclictest without applying any stress"
323 - parameter:
324     name: 'kvmfornfv-Stress_Idle-daily-test-{stream}'
325     parameters:
326         - string:
327             name: TEST_NAME
328             default: 'stress_idle'
329             description: "Daily job to run cyclictest with stress applied"
330 - parameter:
331     name: 'kvmfornfv-Packet_Forwarding-daily-test-{stream}'
332     parameters:
333         - string:
334             name: TEST_NAME
335             default: 'packet_forward'
336             description: "Daily job to run packet forwarding test cases"
337 #####################################
338 # builder macros
339 #####################################
340 - builder:
341     name: 'kvmfornfv-verify-build-macro'
342     builders:
343         - shell:
344             !include-raw: ./kvmfornfv-build.sh
345         - shell:
346             !include-raw: ./kvmfornfv-upload-artifact.sh
347 - builder:
348     name: 'kvmfornfv-verify-test-macro'
349     builders:
350         - shell:
351             !include-raw: ./kvmfornfv-download-artifact.sh
352         - shell:
353             !include-raw: ./kvmfornfv-test.sh
354 - builder:
355     name: 'kvmfornfv-Idle_Idle-daily-build-macro'
356     builders:
357         - shell:
358             !include-raw: ./kvmfornfv-build.sh
359         - shell:
360             !include-raw: ./kvmfornfv-upload-artifact.sh
361 - builder:
362     name: 'kvmfornfv-Stress_Idle-daily-build-macro'
363     builders:
364         - shell:
365             !include-raw: ./kvmfornfv-build.sh
366         - shell:
367             !include-raw: ./kvmfornfv-upload-artifact.sh
368 - builder:
369     name: 'kvmfornfv-Packet_Forwarding-daily-build-macro'
370     builders:
371         - shell:
372             !include-raw: ./kvmfornfv-build.sh
373         - shell:
374             !include-raw: ./kvmfornfv-upload-artifact.sh
375 - builder:
376     name: 'kvmfornfv-Idle_Idle-daily-test-macro'
377     builders:
378         - shell:
379             !include-raw: ./kvmfornfv-download-artifact.sh
380         - shell:
381             !include-raw: ./kvmfornfv-test.sh
382 - builder:
383     name: 'kvmfornfv-Stress_Idle-daily-test-macro'
384     builders:
385         - shell:
386             !include-raw: ./kvmfornfv-download-artifact.sh
387         - shell:
388             !include-raw: ./kvmfornfv-test.sh
389 - builder:
390     name: 'kvmfornfv-Packet_Forwarding-daily-test-macro'
391     builders:
392         - shell:
393             !include-raw: ./kvmfornfv-download-artifact.sh
394         - shell:
395             !include-raw: ./kvmfornfv-test.sh
396
397 #####################################
398 # parameter macros
399 #####################################
400 - parameter:
401     name: 'kvmfornfv-defaults'
402     parameters:
403         - string:
404             name: GS_URL
405             default: artifacts.opnfv.org/$PROJECT{gs-pathname}
406             description: "URL to Google Storage."