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"
380 default: "/root/.ssh/id_rsa"
381 description: "SSH public key to access the installer VM"
388 default: ssh://gerrit.opnfv.org:29418/$PROJECT
389 description: "Override GIT_BASE"
390 ########################
392 ########################
394 name: 'functest-master'
396 - pollscm: "H 9 * * *"
399 name: 'functest-stable-arno'
401 - pollscm: "H 21 * * *"
403 ########################
405 ########################
414 echo "Functest: running all the tests"
415 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh"
416 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
417 docker exec $container_id $cmd
420 name: set-functest-env
425 if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
426 INSTALLER_IP=$(cat instack /var/lib/libvirt/dnsmasq/default.leases \
427 |sed 's/.*192/192/g' | sed 's/\ in.*//g')
429 echo "Functest: Start Docker and prepare environment"
430 envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} -e NODE_NAME=${NODE_NAME}"
432 # If production lab then creds may be retrieved dynamically
433 # If dev lab, credentials may not be the default ones, just provide a path to put them into docker
434 if [ -n "${LAB_CONFIG}" ]; then
435 labconfig="-v ${LAB_CONFIG}:/home/opnfv/functest/conf/openstack.creds"
437 if [ -n "${SSH_KEY}" ]; then
438 sshkey="-v ${SSH_KEY}:/root/.ssh/id_rsa"
441 docker pull opnfv/functest:latest_stable
442 cmd="docker run -id -e $envs ${labconfig} ${sshkey} opnfv/functest:latest_stable /bin/bash"
443 echo "Functest: Running docker run command: ${cmd}"
447 container_id=$(docker ps | grep 'opnfv/functest:latest_stable' | awk '{print $1}' | head -1)
448 echo "Container ID=${container_id}"
449 if [ -z ${container_id} ]; then
450 echo "Cannot find opnfv/functest container ID ${container_id}. Please check if it is existing."
454 echo "Starting the container: docker start ${container_id}"
455 docker start ${container_id}
458 if [ $(docker ps | grep 'opnfv/functest:latest_stable' | wc -l) == 0 ]; then
459 echo "The container opnfv/functest with ID=${container_id} has not been properly started. Exiting..."
462 cmd="${FUNCTEST_REPO_DIR}/docker/prepare_env.sh"
463 echo "Executing command inside the docker: ${cmd}"
464 docker exec ${container_id} ${cmd}
473 echo "Functest: run vPing"
474 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test vping"
475 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
476 docker exec $container_id $cmd
485 echo "Functest: run ODL suite"
486 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test odl"
487 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
488 docker exec $container_id $cmd
491 name: functest-tempest-smoke
498 echo "Functest: run Tempest suite"
499 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test tempest"
500 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
501 docker exec $container_id $cmd
504 name: functest-rally-bench
510 echo "Functest: run Functest Rally Bench suites"
511 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test rally"
512 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
513 docker exec $container_id $cmd
522 echo "Functest: run Functest vIMS test"
523 cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test vims"
524 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
525 docker exec $container_id $cmd
528 name: functest-store-results
531 !include-raw res-build.sh
534 name: functest-cleanup
539 echo "Cleaning up docker containers/images..."
541 # Remove previous running containers if exist
542 if [[ ! -z $(docker ps -a | grep opnfv/functest) ]]; then
543 echo "Removing existing opnfv/functest containers..."
544 docker ps | grep opnfv/functest | awk '{print $1}' | xargs docker stop
545 docker ps -a | grep opnfv/functest | awk '{print $1}' | xargs docker rm
548 # Remove existing images if exist
549 if [[ ! -z $(docker images | grep opnfv/functest) ]]; then
550 echo "Docker images to remove:"
551 docker images | head -1 && docker images | grep opnfv/functest
552 image_tags=($(docker images | grep opnfv/functest | awk '{print $2}'))
553 for tag in "${image_tags[@]}"; do
554 echo "Removing docker image opnfv/functest:$tag..."
555 docker rmi opnfv/functest:$tag