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'
21 node: 'huawei-us-deploy-bare-1'
22 installer_type: 'compass'
23 installer_ip: '192.168.200.2'
25 node: 'intel-us-deploy-bare-pod5'
26 installer_type: 'compass'
27 installer_ip: '127.0.0.1'
31 installer_type: 'fuel'
32 installer_ip: '172.30.10.73'
34 node: 'orange-fr-pod2'
35 installer_type: 'joid'
36 installer_ip: '127.0.0.1'
38 node: 'huawei-us-deploy-bare-1'
39 installer_type: 'compass'
40 installer_ip: '192.168.200.2'
41 - intel-us-deploy-bare-pod5:
42 node: 'intel-us-deploy-bare-pod5'
43 installer_type: 'joid'
44 installer_ip: '127.0.0.1'
47 - 'set-functest-env-{pod}'
49 - 'clean-functest-env-{pod}'
50 - 'set-functest-env-{installer}-{stream}'
51 - 'functest-{installer}-{stream}'
52 - 'clean-functest-env-{installer}-{stream}'
53 - 'functest-openstack-bench-test-{pod}'
54 - 'functest-openstack-tempest-smoke-test-{pod}'
55 - 'functest-odl-test-{pod}'
56 - 'functest-vims-{installer}-{stream}'
57 - 'functest-vping-test-{pod}'
58 - 'functest-daily-{stream}'
59 - 'functest-merge-{stream}'
60 - 'functest-verify-{stream}'
62 # stream: branch with - in place of / (eg. stable-arno)
63 # branch: branch (eg. stable/arno)
74 ################################
76 ################################
78 name: set-functest-env-{pod}
86 name: clean-functest-env-{pod}
94 name: set-functest-env-{installer}-{stream}
102 name: clean-functest-env-{installer}-{stream}
110 name: functest-openstack-bench-test-{pod}
115 - 'functest-rally-bench'
118 name: functest-openstack-tempest-smoke-test-{pod}
123 - 'functest-tempest-smoke'
126 name: functest-odl-test-{pod}
135 name: functest-vping-test-{pod}
153 default: '{installer_type}'
154 description: "Installer name that is used for deployment."
157 default: '{installer_ip}'
158 description: "Installer IP."
163 credentials-id: '{ssh-credentials}'
171 - 'functest-store-results'
174 name: functest-{installer}-{stream}
184 default: '{installer_type}'
185 description: "Installer name that is used for deployment."
188 default: '{installer_ip}'
189 description: "Installer IP."
192 default: ssh://gerrit.opnfv.org:29418/$PROJECT
193 description: "Override GIT_BASE"
197 credentials-id: '{ssh-credentials}'
205 - 'functest-store-results'
208 name: functest-vims-{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}'
239 name: 'functest-daily-{stream}'
241 # Job template for daily builders
243 # Required Variables:
244 # stream: branch with - in place of / (eg. stable)
245 # branch: branch (eg. stable)
247 varsetabove: '{somevar}'
252 - functest-parameter:
253 gs-pathname: '{gs-pathname}'
257 credentials-id: '{ssh-credentials}'
262 - 'functest-{stream}'
269 !include-raw ../opnfvdocs/docu-build.sh
275 name: 'functest-verify-{stream}'
283 - gerrit-trigger-scm:
284 credentials-id: '{ssh-credentials}'
285 refspec: '$GERRIT_REFSPEC'
286 choosing-strategy: 'gerrit'
291 - patchset-created-event:
292 exclude-drafts: 'false'
293 exclude-trivial-rebase: 'false'
294 exclude-no-code-change: 'false'
295 - draft-published-event
296 - comment-added-contains-event:
297 comment-contains-value: 'recheck'
298 - comment-added-contains-event:
299 comment-contains-value: 'reverify'
301 - project-compare-type: 'ANT'
302 project-pattern: 'functest'
304 - branch-compare-type: 'ANT'
305 branch-pattern: '**/{branch}'
309 !include-raw ../opnfvdocs/docu-build.sh
312 name: 'functest-merge-{stream}'
314 # builder-merge job to run JJB update
316 # This job's purpose is to update all the JJB
325 - gerrit-trigger-scm:
326 credentials-id: '{ssh-credentials}'
328 choosing-strategy: 'default'
333 - change-merged-event
334 - comment-added-contains-event:
335 comment-contains-value: 'remerge'
337 - project-compare-type: 'ANT'
338 project-pattern: 'functest'
340 - branch-compare-type: 'ANT'
341 branch-pattern: '**/{branch}'
345 !include-raw ../opnfvdocs/docu-build.sh
347 ########################
349 ########################
351 name: functest-parameter
355 default: '{gs-pathname}'
356 description: "Version directory where the opnfv documents will be stored in gs repository"
358 name: FUNCTEST_REPO_DIR
359 default: "/home/opnfv/repos/functest"
360 description: "Directory where the Functest repository is cloned"
367 default: https://gerrit.opnfv.org/gerrit/$PROJECT
368 description: "Override GIT_BASE"
375 default: https://gerrit.opnfv.org/gerrit/$PROJECT
376 description: "Override GIT_BASE"
379 default: "/home/opnfv/repos/functest"
380 description: "Openstack credentials on the dev lab"
387 default: ssh://gerrit.opnfv.org:29418/$PROJECT
388 description: "Override GIT_BASE"
395 default: https://gerrit.opnfv.org/gerrit/$PROJECT
396 description: "Override GIT_BASE"
399 name: intel-us-deploy-bare-pod5
403 default: https://gerrit.opnfv.org/gerrit/$PROJECT
404 description: "Override GIT_BASE"
411 default: ssh://gerrit.opnfv.org:29418/$PROJECT
412 description: "Override GIT_BASE"
413 ########################
415 ########################
417 name: 'functest-master'
419 - pollscm: "H 9 * * *"
422 name: 'functest-stable-arno'
424 - pollscm: "H 21 * * *"
426 ########################
428 ########################
437 echo "Functest: running all the tests"
438 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh"
439 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
440 docker exec $container_id $cmd
443 name: set-functest-env
448 if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
449 INSTALLER_IP=$(cat instack /var/lib/libvirt/dnsmasq/default.leases \
450 |sed 's/.*192/192/g' | sed 's/\ in.*//g')
451 sshkey="-v /root/.ssh/id_rsa:/root/.ssh/id_rsa"
453 echo "Functest: Start Docker and prepare environment"
454 envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} -e NODE_NAME=${NODE_NAME}"
456 # If production lab then creds may be retrieved dynamically
457 # If dev lab, credentials may not be the default ones, just provide a path to put them into docker
458 if [ -n "${LAB_CONFIG}" ]; then
459 labconfig="-v ${LAB_CONFIG}:/home/opnfv/functest/conf/openstack.creds"
462 docker pull opnfv/functest:latest_stable
463 cmd="docker run -id -e $envs ${labconfig} ${sshkey} opnfv/functest:latest_stable /bin/bash"
464 echo "Functest: Running docker run command: ${cmd}"
468 container_id=$(docker ps | grep 'opnfv/functest:latest_stable' | awk '{print $1}' | head -1)
469 echo "Container ID=${container_id}"
470 if [ -z ${container_id} ]; then
471 echo "Cannot find opnfv/functest container ID ${container_id}. Please check if it is existing."
475 echo "Starting the container: docker start ${container_id}"
476 docker start ${container_id}
479 if [ $(docker ps | grep 'opnfv/functest:latest_stable' | wc -l) == 0 ]; then
480 echo "The container opnfv/functest with ID=${container_id} has not been properly started. Exiting..."
483 cmd="${FUNCTEST_REPO_DIR}/docker/prepare_env.sh"
484 echo "Executing command inside the docker: ${cmd}"
485 docker exec ${container_id} ${cmd}
494 echo "Functest: run vPing"
495 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test vping"
496 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
497 docker exec $container_id $cmd
506 echo "Functest: run ODL suite"
507 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test odl"
508 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
509 docker exec $container_id $cmd
512 name: functest-tempest-smoke
519 echo "Functest: run Tempest suite"
520 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test tempest"
521 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
522 docker exec $container_id $cmd
525 name: functest-rally-bench
531 echo "Functest: run Functest Rally Bench suites"
532 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test rally"
533 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
534 docker exec $container_id $cmd
543 echo "Functest: run Functest vIMS test"
544 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test vims"
545 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
546 docker exec $container_id $cmd
549 name: functest-store-results
552 !include-raw res-build.sh
555 name: functest-cleanup
560 echo "Cleaning up docker containers/images..."
562 # Remove previous running containers if exist
563 if [[ ! -z $(docker ps -a | grep opnfv/functest) ]]; then
564 echo "Removing existing opnfv/functest containers..."
565 docker ps | grep opnfv/functest | awk '{print $1}' | xargs docker stop
566 docker ps -a | grep opnfv/functest | awk '{print $1}' | xargs docker rm
569 # Remove existing images if exist
570 if [[ ! -z $(docker images | grep opnfv/functest) ]]; then
571 echo "Docker images to remove:"
572 docker images | head -1 && docker images | grep opnfv/functest
573 image_tags=($(docker images | grep opnfv/functest | awk '{print $2}'))
574 for tag in "${image_tags[@]}"; do
575 echo "Removing docker image opnfv/functest:$tag..."
576 docker rmi opnfv/functest:$tag