1 ###################################
2 # job configuration for functest
3 ###################################
10 installer_type: 'fuel'
11 installer_ip: '10.20.0.2'
14 installer_type: 'foreman'
15 installer_ip: '172.30.10.73'
18 installer_type: 'apex'
19 installer_ip: '192.168.X.X'
23 installer_type: 'fuel'
24 installer_ip: '172.30.10.73'
27 node: 'orange-fr-pod2'
28 installer_type: 'joid'
29 installer_ip: '127.0.0.1'
32 - 'set-functest-env-{pod}'
34 - 'clean-functest-env-{pod}'
35 - 'set-functest-env-{installer}-{stream}'
36 - 'functest-{installer}-{stream}'
37 - 'clean-functest-env-{installer}-{stream}'
38 - 'functest-openstack-bench-test-{pod}'
39 - 'functest-openstack-tempest-smoke-test-{pod}'
40 - 'functest-odl-test-{pod}'
41 - 'functest-vims-{installer}-{stream}'
42 - 'functest-vping-test-{pod}'
43 - 'functest-daily-{stream}'
44 - 'functest-merge-{stream}'
45 - 'functest-verify-{stream}'
47 # stream: branch with - in place of / (eg. stable-arno)
48 # branch: branch (eg. stable/arno)
59 ################################
61 ################################
63 name: set-functest-env-{pod}
70 artifactDaysToKeep: -1
77 name: clean-functest-env-{pod}
84 artifactDaysToKeep: -1
91 name: set-functest-env-{installer}-{stream}
98 artifactDaysToKeep: -1
105 name: clean-functest-env-{installer}-{stream}
112 artifactDaysToKeep: -1
113 artifactNumToKeep: -1
119 name: functest-openstack-bench-test-{pod}
126 artifactDaysToKeep: -1
127 artifactNumToKeep: -1
130 - 'functest-rally-bench'
133 name: functest-openstack-tempest-smoke-test-{pod}
140 artifactDaysToKeep: -1
141 artifactNumToKeep: -1
144 - 'functest-tempest-smoke'
147 name: functest-odl-test-{pod}
154 artifactDaysToKeep: -1
155 artifactNumToKeep: -1
162 name: functest-vping-test-{pod}
169 artifactDaysToKeep: -1
170 artifactNumToKeep: -1
186 default: '{installer_type}'
187 description: "Installer name that is used for deployment."
190 default: '{installer_ip}'
191 description: "Installer IP."
196 credentials-id: '{ssh-credentials}'
203 artifactDaysToKeep: -1
204 artifactNumToKeep: -1
210 - 'functest-store-results'
213 name: functest-{installer}-{stream}
223 default: '{installer_type}'
224 description: "Installer name that is used for deployment."
227 default: '{installer_ip}'
228 description: "Installer IP."
231 default: ssh://gerrit.opnfv.org:29418/$PROJECT
232 description: "Override GIT_BASE"
236 credentials-id: '{ssh-credentials}'
243 artifactDaysToKeep: -1
244 artifactNumToKeep: -1
250 - 'functest-store-results'
253 name: functest-vims-{installer}-{stream}
263 default: '{installer_type}'
264 description: "Installer name that is used for deployment."
267 default: '{installer_ip}'
268 description: "Installer IP."
271 default: ssh://gerrit.opnfv.org:29418/$PROJECT
272 description: "Override GIT_BASE"
276 credentials-id: '{ssh-credentials}'
283 artifactDaysToKeep: -1
284 artifactNumToKeep: -1
290 name: 'functest-daily-{stream}'
292 # Job template for daily builders
294 # Required Variables:
295 # stream: branch with - in place of / (eg. stable)
296 # branch: branch (eg. stable)
298 varsetabove: '{somevar}'
303 - functest-parameter:
304 gs-pathname: '{gs-pathname}'
308 credentials-id: '{ssh-credentials}'
313 - 'functest-{stream}'
320 !include-raw ../opnfvdocs/docu-build.sh
326 name: 'functest-verify-{stream}'
331 artifactDaysToKeep: -1
332 artifactNumToKeep: -1
340 - gerrit-trigger-scm:
341 credentials-id: '{ssh-credentials}'
342 refspec: '$GERRIT_REFSPEC'
343 choosing-strategy: 'gerrit'
348 - patchset-created-event:
349 exclude-drafts: 'false'
350 exclude-trivial-rebase: 'false'
351 exclude-no-code-change: 'false'
352 - draft-published-event
353 - comment-added-contains-event:
354 comment-contains-value: 'recheck'
355 - comment-added-contains-event:
356 comment-contains-value: 'reverify'
358 - project-compare-type: 'ANT'
359 project-pattern: 'functest'
361 - branch-compare-type: 'ANT'
362 branch-pattern: '**/{branch}'
366 !include-raw ../opnfvdocs/docu-build.sh
369 name: 'functest-merge-{stream}'
371 # builder-merge job to run JJB update
373 # This job's purpose is to update all the JJB
382 - gerrit-trigger-scm:
383 credentials-id: '{ssh-credentials}'
385 choosing-strategy: 'default'
390 - change-merged-event
391 - comment-added-contains-event:
392 comment-contains-value: 'remerge'
394 - project-compare-type: 'ANT'
395 project-pattern: 'functest'
397 - branch-compare-type: 'ANT'
398 branch-pattern: '**/{branch}'
402 !include-raw ../opnfvdocs/docu-build.sh
404 ########################
406 ########################
408 name: functest-parameter
412 default: '{gs-pathname}'
413 description: "Version directory where the opnfv documents will be stored in gs repository"
415 name: FUNCTEST_REPO_DIR
416 default: "/home/opnfv/repos/functest"
417 description: "Directory where the Functest repository is cloned"
424 default: https://gerrit.opnfv.org/gerrit/$PROJECT
425 description: "Override GIT_BASE"
432 default: https://gerrit.opnfv.org/gerrit/$PROJECT
433 description: "Override GIT_BASE"
436 default: "/home/opnfv/repos/functest"
437 description: "Openstack credentials on the dev lab"
444 default: ssh://gerrit.opnfv.org:29418/$PROJECT
445 description: "Override GIT_BASE"
452 default: ssh://gerrit.opnfv.org:29418/$PROJECT
453 description: "Override GIT_BASE"
454 ########################
456 ########################
458 name: 'functest-master'
460 - pollscm: "H 9 * * *"
463 name: 'functest-stable-arno'
465 - pollscm: "H 21 * * *"
467 ########################
469 ########################
478 echo "Functest: running all the tests"
479 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh"
480 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
481 docker exec $container_id $cmd
484 name: set-functest-env
489 if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
490 INSTALLER_IP=$(cat instack /var/lib/libvirt/dnsmasq/default.leases \
491 |sed 's/.*192/192/g' | sed 's/\ in.*//g')
493 echo "Functest: Start Docker and prepare environment"
494 envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} -e NODE_NAME=${NODE_NAME}"
496 # If production lab then creds may be retrieved dynamically
497 # If dev lab, credentials may not be the default ones, just provide a path to put them into docker
498 if [ -n "${LAB_CONFIG}" ]; then
499 labconfig="-v ${LAB_CONFIG}:/home/opnfv/functest/conf/openstack.creds"
501 docker pull opnfv/functest:latest_stable
502 cmd = "docker run -id -e $envs ${labconfig} opnfv/functest:latest_stable /bin/bash"
503 echo "Functest: Running docker run command: ${cmd}"
507 container_id=$(docker ps | grep 'opnfv/functest:latest_stable' | awk '{print $1}' | head -1)
508 echo "Container ID=${container_id}"
509 if [ -z ${container_id} ]; then
510 echo "Cannot find opnfv/functest container ID ${container_id}. Please check if it is existing."
514 echo "Starting the container: docker start ${container_id}"
515 docker start ${container_id}
518 if [ $(docker ps | grep 'opnfv/functest:latest_stable' | wc -l) == 0 ]; then
519 echo "The container opnfv/functest with ID=${container_id} has not been properly started. Exiting..."
522 cmd="${FUNCTEST_REPO_DIR}/docker/prepare_env.sh"
523 echo "Executing command inside the docker: ${cmd}"
524 docker exec ${container_id} ${cmd}
533 echo "Functest: run vPing"
534 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test vping"
535 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
536 docker exec $container_id $cmd
545 echo "Functest: run ODL suite"
546 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test odl"
547 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
548 docker exec $container_id $cmd
551 name: functest-tempest-smoke
558 echo "Functest: run Tempest suite"
559 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test tempest"
560 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
561 docker exec $container_id $cmd
564 name: functest-rally-bench
570 echo "Functest: run Functest Rally Bench suites"
571 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test rally"
572 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
573 docker exec $container_id $cmd
582 echo "Functest: run Functest vIMS test"
583 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test vims"
584 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
585 docker exec $container_id $cmd
588 name: functest-store-results
591 !include-raw res-build.sh
594 name: functest-cleanup
599 echo "Cleaning up docker containers/images..."
601 # Remove previous running containers if exist
602 if [[ ! -z $(docker ps -a | grep opnfv/functest) ]]; then
603 echo "Removing existing opnfv/functest containers..."
604 docker ps | grep opnfv/functest | awk '{print $1}' | xargs docker stop
605 docker ps -a | grep opnfv/functest | awk '{print $1}' | xargs docker rm
608 # Remove existing images if exist
609 if [[ ! -z $(docker images | grep opnfv/functest) ]]; then
610 echo "Docker images to remove:"
611 docker images | head -1 && docker images | grep opnfv/functest
612 image_tags=($(docker images | grep opnfv/functest | awk '{print $2}'))
613 for tag in "${image_tags[@]}"; do
614 echo "Removing docker image opnfv/functest:$tag..."
615 docker rmi opnfv/functest:$tag