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'
22 installer_type: 'compass'
23 installer_ip: '192.168.200.2'
27 installer_type: 'fuel'
28 installer_ip: '172.30.10.73'
31 node: 'orange-fr-pod2'
32 installer_type: 'joid'
33 installer_ip: '127.0.0.1'
36 - 'set-functest-env-{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}'
51 # stream: branch with - in place of / (eg. stable-arno)
52 # branch: branch (eg. stable/arno)
63 ################################
65 ################################
67 name: set-functest-env-{pod}
75 name: clean-functest-env-{pod}
83 name: set-functest-env-{installer}-{stream}
91 name: clean-functest-env-{installer}-{stream}
99 name: functest-openstack-bench-test-{pod}
104 - 'functest-rally-bench'
107 name: functest-openstack-tempest-smoke-test-{pod}
112 - 'functest-tempest-smoke'
115 name: functest-odl-test-{pod}
124 name: functest-vping-test-{pod}
142 default: '{installer_type}'
143 description: "Installer name that is used for deployment."
146 default: '{installer_ip}'
147 description: "Installer IP."
152 credentials-id: '{ssh-credentials}'
160 - 'functest-store-results'
163 name: functest-{installer}-{stream}
173 default: '{installer_type}'
174 description: "Installer name that is used for deployment."
177 default: '{installer_ip}'
178 description: "Installer IP."
181 default: ssh://gerrit.opnfv.org:29418/$PROJECT
182 description: "Override GIT_BASE"
186 credentials-id: '{ssh-credentials}'
194 - 'functest-store-results'
197 name: functest-vims-{installer}-{stream}
207 default: '{installer_type}'
208 description: "Installer name that is used for deployment."
211 default: '{installer_ip}'
212 description: "Installer IP."
215 default: ssh://gerrit.opnfv.org:29418/$PROJECT
216 description: "Override GIT_BASE"
220 credentials-id: '{ssh-credentials}'
228 name: 'functest-daily-{stream}'
230 # Job template for daily builders
232 # Required Variables:
233 # stream: branch with - in place of / (eg. stable)
234 # branch: branch (eg. stable)
236 varsetabove: '{somevar}'
241 - functest-parameter:
242 gs-pathname: '{gs-pathname}'
246 credentials-id: '{ssh-credentials}'
251 - 'functest-{stream}'
258 !include-raw ../opnfvdocs/docu-build.sh
264 name: 'functest-verify-{stream}'
272 - gerrit-trigger-scm:
273 credentials-id: '{ssh-credentials}'
274 refspec: '$GERRIT_REFSPEC'
275 choosing-strategy: 'gerrit'
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'
290 - project-compare-type: 'ANT'
291 project-pattern: 'functest'
293 - branch-compare-type: 'ANT'
294 branch-pattern: '**/{branch}'
298 !include-raw ../opnfvdocs/docu-build.sh
301 name: 'functest-merge-{stream}'
303 # builder-merge job to run JJB update
305 # This job's purpose is to update all the JJB
314 - gerrit-trigger-scm:
315 credentials-id: '{ssh-credentials}'
317 choosing-strategy: 'default'
322 - change-merged-event
323 - comment-added-contains-event:
324 comment-contains-value: 'remerge'
326 - project-compare-type: 'ANT'
327 project-pattern: 'functest'
329 - branch-compare-type: 'ANT'
330 branch-pattern: '**/{branch}'
334 !include-raw ../opnfvdocs/docu-build.sh
336 ########################
338 ########################
340 name: functest-parameter
344 default: '{gs-pathname}'
345 description: "Version directory where the opnfv documents will be stored in gs repository"
347 name: FUNCTEST_REPO_DIR
348 default: "/home/opnfv/repos/functest"
349 description: "Directory where the Functest repository is cloned"
356 default: https://gerrit.opnfv.org/gerrit/$PROJECT
357 description: "Override GIT_BASE"
364 default: https://gerrit.opnfv.org/gerrit/$PROJECT
365 description: "Override GIT_BASE"
368 default: "/home/opnfv/repos/functest"
369 description: "Openstack credentials on the dev lab"
376 default: ssh://gerrit.opnfv.org:29418/$PROJECT
377 description: "Override GIT_BASE"
384 default: ssh://gerrit.opnfv.org:29418/$PROJECT
385 description: "Override GIT_BASE"
386 ########################
388 ########################
390 name: 'functest-master'
392 - pollscm: "H 9 * * *"
395 name: 'functest-stable-arno'
397 - pollscm: "H 21 * * *"
399 ########################
401 ########################
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
416 name: set-functest-env
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')
425 echo "Functest: Start Docker and prepare environment"
426 envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} -e NODE_NAME=${NODE_NAME}"
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"
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}"
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."
446 echo "Starting the container: docker start ${container_id}"
447 docker start ${container_id}
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..."
454 cmd="${FUNCTEST_REPO_DIR}/docker/prepare_env.sh"
455 echo "Executing command inside the docker: ${cmd}"
456 docker exec ${container_id} ${cmd}
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
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
483 name: functest-tempest-smoke
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
496 name: functest-rally-bench
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
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
520 name: functest-store-results
523 !include-raw res-build.sh
526 name: functest-cleanup
531 echo "Cleaning up docker containers/images..."
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
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