jjb: use default logrotate setting in all projects
[releng.git] / jjb / functest / functest.yml
1 ###################################
2 # job configuration for functest
3 ###################################
4 - project:
5     name: functest
6
7     installer:
8         - fuel:
9             node: 'opnfv-jump-2'
10             installer_type: 'fuel'
11             installer_ip: '10.20.0.2'
12         - foreman:
13             node: 'opnfv-jump-2'
14             installer_type: 'foreman'
15             installer_ip: '172.30.10.73'
16         - apex:
17             node: 'opnfv-jump-1'
18             installer_type: 'apex'
19             installer_ip: '192.168.X.X'
20         - compass:
21             node: 'huawei-us'
22             installer_type: 'compass'
23             installer_ip: '192.168.200.2'
24     pod:
25         - orange-test1:
26             node: 'orange-test1'
27             installer_type: 'fuel'
28             installer_ip: '172.30.10.73'
29
30         - orange-fr-pod2:
31             node: 'orange-fr-pod2'
32             installer_type: 'joid'
33             installer_ip: '127.0.0.1'
34
35     jobs:
36         - 'set-functest-env-{pod}'
37         - 'functest-{pod}'
38         - 'clean-functest-env-{pod}'
39         - 'set-functest-env-{installer}-{stream}'
40         - 'functest-{installer}-{stream}'
41         - 'clean-functest-env-{installer}-{stream}'
42         - 'functest-openstack-bench-test-{pod}'
43         - 'functest-openstack-tempest-smoke-test-{pod}'
44         - 'functest-odl-test-{pod}'
45         - 'functest-vims-{installer}-{stream}'
46         - 'functest-vping-test-{pod}'
47         - 'functest-daily-{stream}'
48         - 'functest-merge-{stream}'
49         - 'functest-verify-{stream}'
50
51     # stream:    branch with - in place of / (eg. stable-arno)
52     # branch:    branch (eg. stable/arno)
53     stream:
54         - master:
55             branch: 'master'
56             gs-pathname: ''
57         - stable-arno:
58             branch: 'stable/arno'
59             gs-pathname: '/arno'
60
61     project: 'functest'
62     somevar: 'foo'
63 ################################
64 # job template
65 ################################
66 - job-template:
67     name: set-functest-env-{pod}
68
69     node: '{pod}'
70
71     builders:
72         - 'set-functest-env'
73
74 - job-template:
75     name: clean-functest-env-{pod}
76
77     node: '{pod}'
78
79     builders:
80         - 'functest-cleanup'
81
82 - job-template:
83     name: set-functest-env-{installer}-{stream}
84
85     node: '{node}'
86
87     builders:
88         - 'set-functest-env'
89
90 - job-template:
91     name: clean-functest-env-{installer}-{stream}
92
93     node: '{node}'
94
95     builders:
96         - 'functest-cleanup'
97
98 - job-template:
99     name: functest-openstack-bench-test-{pod}
100
101     node: '{pod}'
102
103     builders:
104         - 'functest-rally-bench'
105
106 - job-template:
107     name: functest-openstack-tempest-smoke-test-{pod}
108
109     node: '{pod}'
110
111     builders:
112         - 'functest-tempest-smoke'
113
114 - job-template:
115     name: functest-odl-test-{pod}
116
117     node: '{pod}'
118
119     builders:
120         - shell: |
121         - 'functest-odl'
122
123 - job-template:
124     name: functest-vping-test-{pod}
125
126     node: '{pod}'
127
128     builders:
129         - 'functest-vping'
130
131 - job-template:
132     name: functest-{pod}
133
134     node: '{pod}'
135
136     parameters:
137         - project-parameter:
138             project: '{project}'
139         - functest-parameter
140         - string:
141             name: INSTALLER_TYPE
142             default: '{installer_type}'
143             description: "Installer name that is used for deployment."
144         - string:
145             name: INSTALLER_IP
146             default: '{installer_ip}'
147             description: "Installer IP."
148         - '{pod}'
149
150     scm:
151         - git-scm:
152             credentials-id: '{ssh-credentials}'
153             refspec: ''
154             branch: master
155
156     builders:
157         - 'functest-cleanup'
158         - 'set-functest-env'
159         - 'functest-all'
160         - 'functest-store-results'
161
162 - job-template:
163     name: functest-{installer}-{stream}
164
165     node: '{node}'
166
167     parameters:
168         - project-parameter:
169             project: '{project}'
170         - functest-parameter
171         - string:
172             name: INSTALLER_TYPE
173             default: '{installer_type}'
174             description: "Installer name that is used for deployment."
175         - string:
176             name: INSTALLER_IP
177             default: '{installer_ip}'
178             description: "Installer IP."
179         - string:
180             name: GIT_BASE
181             default: ssh://gerrit.opnfv.org:29418/$PROJECT
182             description: "Override GIT_BASE"
183
184     scm:
185         - git-scm:
186             credentials-id: '{ssh-credentials}'
187             refspec: ''
188             branch: master
189
190     builders:
191         - 'functest-cleanup'
192         - 'set-functest-env'
193         - 'functest-all'
194         - 'functest-store-results'
195
196 - job-template:
197     name: functest-vims-{installer}-{stream}
198
199     node: '{node}'
200
201     parameters:
202         - project-parameter:
203             project: '{project}'
204         - functest-parameter
205         - string:
206             name: INSTALLER_TYPE
207             default: '{installer_type}'
208             description: "Installer name that is used for deployment."
209         - string:
210             name: INSTALLER_IP
211             default: '{installer_ip}'
212             description: "Installer IP."
213         - string:
214             name: GIT_BASE
215             default: ssh://gerrit.opnfv.org:29418/$PROJECT
216             description: "Override GIT_BASE"
217
218     scm:
219         - git-scm:
220             credentials-id: '{ssh-credentials}'
221             refspec: ''
222             branch: master
223
224     builders:
225         - 'functest-vims'
226
227 - job-template:
228     name: 'functest-daily-{stream}'
229
230     # Job template for daily builders
231     #
232     # Required Variables:
233     #     stream:    branch with - in place of / (eg. stable)
234     #     branch:    branch (eg. stable)
235
236     varsetabove: '{somevar}'
237
238     parameters:
239         - project-parameter:
240             project: '{project}'
241         - functest-parameter:
242             gs-pathname: '{gs-pathname}'
243
244     scm:
245         - git-scm:
246             credentials-id: '{ssh-credentials}'
247             refspec: ''
248             branch: '{stream}'
249
250     triggers:
251         - 'functest-{stream}'
252
253     prebuilders:
254         - test-macro
255
256     builders:
257         - shell:
258             !include-raw ../opnfvdocs/docu-build.sh
259
260     postbuilders:
261         - test-macro
262
263 - job-template:
264     name: 'functest-verify-{stream}'
265
266     parameters:
267         - project-parameter:
268             project: '{project}'
269         - gerrit-parameter:
270             branch: '{branch}'
271     scm:
272         - gerrit-trigger-scm:
273             credentials-id: '{ssh-credentials}'
274             refspec: '$GERRIT_REFSPEC'
275             choosing-strategy: 'gerrit'
276
277     triggers:
278         - gerrit:
279             trigger-on:
280                 - patchset-created-event:
281                     exclude-drafts: 'false'
282                     exclude-trivial-rebase: 'false'
283                     exclude-no-code-change: 'false'
284                 - draft-published-event
285                 - comment-added-contains-event:
286                     comment-contains-value: 'recheck'
287                 - comment-added-contains-event:
288                     comment-contains-value: 'reverify'
289             projects:
290               - project-compare-type: 'ANT'
291                 project-pattern: 'functest'
292                 branches:
293                   - branch-compare-type: 'ANT'
294                     branch-pattern: '**/{branch}'
295
296     builders:
297         - shell:
298             !include-raw ../opnfvdocs/docu-build.sh
299
300 - job-template:
301     name: 'functest-merge-{stream}'
302
303     # builder-merge job to run JJB update
304     #
305     # This job's purpose is to update all the JJB
306
307     parameters:
308         - project-parameter:
309             project: '{project}'
310         - gerrit-parameter:
311             branch: '{branch}'
312
313     scm:
314         - gerrit-trigger-scm:
315             credentials-id: '{ssh-credentials}'
316             refspec: ''
317             choosing-strategy: 'default'
318
319     triggers:
320         - gerrit:
321             trigger-on:
322                 - change-merged-event
323                 - comment-added-contains-event:
324                     comment-contains-value: 'remerge'
325             projects:
326               - project-compare-type: 'ANT'
327                 project-pattern: 'functest'
328                 branches:
329                     - branch-compare-type: 'ANT'
330                       branch-pattern: '**/{branch}'
331
332     builders:
333         - shell:
334             !include-raw ../opnfvdocs/docu-build.sh
335
336 ########################
337 # parameter macros
338 ########################
339 - parameter:
340     name: functest-parameter
341     parameters:
342         - string:
343             name: GS_PATHNAME
344             default: '{gs-pathname}'
345             description: "Version directory where the opnfv documents will be stored in gs repository"
346         - string:
347             name: FUNCTEST_REPO_DIR
348             default: "/home/opnfv/repos/functest"
349             description: "Directory where the Functest repository is cloned"
350
351 - parameter:
352     name: orange-test1
353     parameters:
354         - string:
355             name: GIT_BASE
356             default: https://gerrit.opnfv.org/gerrit/$PROJECT
357             description: "Override GIT_BASE"
358
359 - parameter:
360     name: orange-fr-pod2
361     parameters:
362         - string:
363             name: GIT_BASE
364             default: https://gerrit.opnfv.org/gerrit/$PROJECT
365             description: "Override GIT_BASE"
366         - string:
367             name: LAB_CONFIG
368             default: "/home/opnfv/repos/functest"
369             description: "Openstack credentials on the dev lab"
370
371 - parameter:
372     name: opnfv-jump-1
373     parameters:
374         - string:
375             name: GIT_BASE
376             default: ssh://gerrit.opnfv.org:29418/$PROJECT
377             description: "Override GIT_BASE"
378
379 - parameter:
380     name: opnfv-jump-2
381     parameters:
382         - string:
383             name: GIT_BASE
384             default: ssh://gerrit.opnfv.org:29418/$PROJECT
385             description: "Override GIT_BASE"
386 ########################
387 # trigger macros
388 ########################
389 - trigger:
390     name: 'functest-master'
391     triggers:
392         - pollscm: "H 9 * * *"
393
394 - trigger:
395     name: 'functest-stable-arno'
396     triggers:
397         - pollscm: "H 21 * * *"
398
399 ########################
400 # builder macros
401 ########################
402 # macros
403 - builder:
404     name: functest-all
405     builders:
406         - shell: |
407             #!/bin/bash
408             set +e
409
410             echo "Functest: running all the tests"
411             cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh"
412             container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
413             docker exec $container_id $cmd
414
415 - builder:
416     name: set-functest-env
417     builders:
418         - shell: |
419             #!/bin/bash
420             set +e
421             if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
422                 INSTALLER_IP=$(cat instack /var/lib/libvirt/dnsmasq/default.leases \
423                     |sed 's/.*192/192/g' | sed 's/\ in.*//g')
424             fi
425             echo "Functest: Start Docker and prepare environment"
426             envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} -e NODE_NAME=${NODE_NAME}"
427             labconfig=""
428             # If production lab then creds may be retrieved dynamically
429             # If dev lab, credentials may not be the default ones, just provide a path to put them into docker
430             if [ -n "${LAB_CONFIG}" ]; then
431                 labconfig="-v ${LAB_CONFIG}:/home/opnfv/functest/conf/openstack.creds"
432             fi
433             docker pull opnfv/functest:latest_stable
434             cmd="docker run -id -e $envs ${labconfig} opnfv/functest:latest_stable /bin/bash"
435             echo "Functest: Running docker run command: ${cmd}"
436             ${cmd}
437             docker ps -a
438             sleep 5
439             container_id=$(docker ps | grep 'opnfv/functest:latest_stable' | awk '{print $1}' | head -1)
440             echo "Container ID=${container_id}"
441             if [ -z ${container_id} ]; then
442                 echo "Cannot find opnfv/functest container ID ${container_id}. Please check if it is existing."
443                 docker ps -a
444                 exit 1
445             fi
446             echo "Starting the container: docker start ${container_id}"
447             docker start ${container_id}
448             sleep 5
449             docker ps
450             if [ $(docker ps | grep 'opnfv/functest:latest_stable' | wc -l) == 0 ]; then
451                 echo "The container opnfv/functest with ID=${container_id} has not been properly started. Exiting..."
452                 exit 1
453             fi
454             cmd="${FUNCTEST_REPO_DIR}/docker/prepare_env.sh"
455             echo "Executing command inside the docker: ${cmd}"
456             docker exec ${container_id} ${cmd}
457
458 - builder:
459     name: functest-vping
460     builders:
461         - shell: |
462             #!/bin/bash
463             set +e
464
465             echo "Functest: run vPing"
466             cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test vping"
467             container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
468             docker exec $container_id $cmd
469
470 - builder:
471     name: functest-odl
472     builders:
473         - shell: |
474             #!/bin/bash
475             set +e
476
477             echo "Functest: run ODL suite"
478             cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test odl"
479             container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
480             docker exec $container_id $cmd
481
482 - builder:
483     name: functest-tempest-smoke
484     builders:
485         - shell: |
486             #!/bin/bash
487             set +e
488
489             # tempest
490             echo "Functest: run Tempest suite"
491             cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test tempest"
492             container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
493             docker exec $container_id $cmd
494
495 - builder:
496     name: functest-rally-bench
497     builders:
498         - shell: |
499             #!/bin/bash
500             set +e
501
502             echo "Functest: run Functest Rally Bench suites"
503             cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test rally"
504             container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
505             docker exec $container_id $cmd
506
507 - builder:
508     name: functest-vims
509     builders:
510         - shell: |
511             #!/bin/bash
512             set +e
513
514             echo "Functest: run Functest vIMS test"
515             cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test vims"
516             container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
517             docker exec $container_id $cmd
518
519 - builder:
520     name: functest-store-results
521     builders:
522         - shell:
523             !include-raw res-build.sh
524
525 - builder:
526     name: functest-cleanup
527     builders:
528         - shell: |
529             #!/bin/bash
530
531             echo "Cleaning up docker containers/images..."
532
533             # Remove previous running containers if exist
534             if [[ ! -z $(docker ps -a | grep opnfv/functest) ]]; then
535                 echo "Removing existing opnfv/functest containers..."
536                 docker ps | grep opnfv/functest | awk '{print $1}' | xargs docker stop
537                 docker ps -a | grep opnfv/functest | awk '{print $1}' | xargs docker rm
538             fi
539
540             # Remove existing images if exist
541             if [[ ! -z $(docker images | grep opnfv/functest) ]]; then
542                 echo "Docker images to remove:"
543                 docker images | head -1 && docker images | grep opnfv/functest
544                 image_tags=($(docker images | grep opnfv/functest | awk '{print $2}'))
545                 for tag in "${image_tags[@]}"; do
546                     echo "Removing docker image opnfv/functest:$tag..."
547                     docker rmi opnfv/functest:$tag
548                 done
549             fi