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: 'foreman'
24 installer_ip: '172.30.10.73'
27 - 'set-functest-env-{pod}'
29 - 'clean-functest-env-{pod}'
30 - 'set-functest-env-{installer}-{stream}'
31 - 'functest-{installer}-{stream}'
32 - 'clean-functest-env-{installer}-{stream}'
33 - 'functest-openstack-bench-test-{pod}'
34 - 'functest-openstack-tempest-smoke-test-{pod}'
35 - 'functest-odl-test-{pod}'
36 - 'functest-vims-{installer}-{stream}'
37 - 'functest-vping-test-{pod}'
38 - 'functest-daily-{stream}'
39 - 'functest-merge-{stream}'
40 - 'functest-verify-{stream}'
42 # stream: branch with - in place of / (eg. stable-arno)
43 # branch: branch (eg. stable/arno)
54 ################################
56 ################################
58 name: set-functest-env-{pod}
65 artifactDaysToKeep: -1
72 name: clean-functest-env-{pod}
79 artifactDaysToKeep: -1
86 name: set-functest-env-{installer}-{stream}
93 artifactDaysToKeep: -1
100 name: clean-functest-env-{installer}-{stream}
107 artifactDaysToKeep: -1
108 artifactNumToKeep: -1
114 name: functest-openstack-bench-test-{pod}
121 artifactDaysToKeep: -1
122 artifactNumToKeep: -1
125 - 'functest-rally-bench'
128 name: functest-openstack-tempest-smoke-test-{pod}
135 artifactDaysToKeep: -1
136 artifactNumToKeep: -1
139 - 'functest-tempest-smoke'
142 name: functest-odl-test-{pod}
149 artifactDaysToKeep: -1
150 artifactNumToKeep: -1
157 name: functest-vping-test-{pod}
164 artifactDaysToKeep: -1
165 artifactNumToKeep: -1
181 default: '{installer_type}'
182 description: "Installer name that is used for deployment."
185 default: '{installer_ip}'
186 description: "Installer IP."
191 credentials-id: '{ssh-credentials}'
198 artifactDaysToKeep: -1
199 artifactNumToKeep: -1
205 - 'functest-store-results'
208 name: functest-{installer}-{stream}
218 default: '{installer_type}'
219 description: "Installer name that is used for deployment."
222 default: '{installer_ip}'
223 description: "Installer IP."
226 default: ssh://gerrit.opnfv.org:29418/$PROJECT
227 description: "Override GIT_BASE"
231 credentials-id: '{ssh-credentials}'
238 artifactDaysToKeep: -1
239 artifactNumToKeep: -1
245 - 'functest-store-results'
248 name: functest-vims-{installer}-{stream}
258 default: '{installer_type}'
259 description: "Installer name that is used for deployment."
262 default: '{installer_ip}'
263 description: "Installer IP."
266 default: ssh://gerrit.opnfv.org:29418/$PROJECT
267 description: "Override GIT_BASE"
271 credentials-id: '{ssh-credentials}'
278 artifactDaysToKeep: -1
279 artifactNumToKeep: -1
285 name: 'functest-daily-{stream}'
289 # Job template for daily builders
291 # Required Variables:
292 # stream: branch with - in place of / (eg. stable)
293 # branch: branch (eg. stable)
295 varsetabove: '{somevar}'
298 daysToKeep: '{build-days-to-keep}'
299 numToKeep: '{build-num-to-keep}'
300 artifactDaysToKeep: '{build-artifact-days-to-keep}'
301 artifactNumToKeep: '{build-artifact-num-to-keep}'
306 - functest-parameter:
307 gs-pathname: '{gs-pathname}'
311 credentials-id: '{ssh-credentials}'
316 - 'functest-{stream}'
323 !include-raw ../opnfvdocs/docu-build.sh
329 name: 'functest-verify-{stream}'
336 artifactDaysToKeep: -1
337 artifactNumToKeep: -1
345 - gerrit-trigger-scm:
346 credentials-id: '{ssh-credentials}'
347 refspec: '$GERRIT_REFSPEC'
348 choosing-strategy: 'gerrit'
353 - patchset-created-event:
354 exclude-drafts: 'false'
355 exclude-trivial-rebase: 'false'
356 exclude-no-code-change: 'false'
357 - draft-published-event
358 - comment-added-contains-event:
359 comment-contains-value: 'recheck'
360 - comment-added-contains-event:
361 comment-contains-value: 'reverify'
363 - project-compare-type: 'ANT'
364 project-pattern: 'functest'
366 - branch-compare-type: 'ANT'
367 branch-pattern: '**/{branch}'
371 !include-raw ../opnfvdocs/docu-build.sh
374 name: 'functest-merge-{stream}'
378 # builder-merge job to run JJB update
380 # This job's purpose is to update all the JJB
385 artifactDaysToKeep: -1
395 - gerrit-trigger-scm:
396 credentials-id: '{ssh-credentials}'
398 choosing-strategy: 'default'
403 - change-merged-event
404 - comment-added-contains-event:
405 comment-contains-value: 'remerge'
407 - project-compare-type: 'ANT'
408 project-pattern: 'functest'
410 - branch-compare-type: 'ANT'
411 branch-pattern: '**/{branch}'
415 !include-raw ../opnfvdocs/docu-build.sh
417 ########################
419 ########################
421 name: functest-parameter
425 default: '{gs-pathname}'
426 description: "Version directory where the opnfv documents will be stored in gs repository"
428 name: FUNCTEST_REPO_DIR
429 default: "/home/opnfv/repos/functest"
430 description: "Directory where the Functest repository is cloned"
437 default: https://gerrit.opnfv.org/gerrit/$PROJECT
438 description: "Override GIT_BASE"
445 default: ssh://gerrit.opnfv.org:29418/$PROJECT
446 description: "Override GIT_BASE"
453 default: ssh://gerrit.opnfv.org:29418/$PROJECT
454 description: "Override GIT_BASE"
455 ########################
457 ########################
459 name: 'functest-master'
461 - pollscm: "H 9 * * *"
464 name: 'functest-stable-arno'
466 - pollscm: "H 21 * * *"
468 ########################
470 ########################
479 echo "Functest: running all the tests"
480 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh"
481 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
482 docker exec $container_id $cmd
485 name: set-functest-env
490 if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
491 INSTALLER_IP=$(cat instack /var/lib/libvirt/dnsmasq/default.leases \
492 |sed 's/.*192/192/g' | sed 's/\ in.*//g')
494 echo "Functest: Start Docker and prepare environment"
495 envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP}"
496 docker pull opnfv/functest:latest_stable
497 echo "Functest: Running docker run command: docker run -i -e $envs opnfv/functest /bin/bash &"
498 docker run -i -e $envs opnfv/functest /bin/bash &
501 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
502 echo "Container ID=${container_id}"
503 if [ -z ${container_id} ]; then
504 echo "Cannot find opnfv/functest container ID ${container_id}. Please check if it is existing."
508 echo "Starting the container: docker start ${container_id}"
509 docker start ${container_id}
512 if [ $(docker ps | grep opnfv/functest | wc -l) == 0 ]; then
513 echo "The container opnfv/functest with ID=${container_id} has not been properly started. Exiting..."
516 cmd="${FUNCTEST_REPO_DIR}/docker/prepare_env.sh"
517 echo "Executing command inside the docker: ${cmd}"
518 docker exec ${container_id} ${cmd}
527 echo "Functest: run vPing"
528 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test vping"
529 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
530 docker exec $container_id $cmd
539 echo "Functest: run ODL suite"
540 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test odl"
541 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
542 docker exec $container_id $cmd
545 name: functest-tempest-smoke
552 echo "Functest: run Tempest suite"
553 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test tempest"
554 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
555 docker exec $container_id $cmd
558 name: functest-rally-bench
564 echo "Functest: run Functest Rally Bench suites"
565 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test rally"
566 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
567 docker exec $container_id $cmd
576 echo "Functest: run Functest vIMS test"
577 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test vims"
578 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
579 docker exec $container_id $cmd
582 name: functest-store-results
585 !include-raw res-build.sh
588 name: functest-cleanup
593 echo "Cleaning up docker containers/images..."
595 # Remove previous running containers if exist
596 if [[ ! -z $(docker ps -a | grep opnfv/functest) ]]; then
597 echo "Removing existing opnfv/functest containers..."
598 docker ps | grep opnfv/functest | awk '{print $1}' | xargs docker stop
599 docker ps -a | grep opnfv/functest | awk '{print $1}' | xargs docker rm
602 # Remove existing images if exist
603 if [[ ! -z $(docker images | grep opnfv/functest) ]]; then
604 echo "Docker images to remove:"
605 docker images | head -1 && docker images | grep opnfv/functest
606 image_tags=($(docker images | grep opnfv/functest | awk '{print $2}'))
607 for tag in "${image_tags[@]}"; do
608 echo "Removing docker image opnfv/functest:$tag..."
609 docker rmi opnfv/functest:$tag