node: 'opnfv-jump-2'
installer_type: 'fuel'
installer_ip: '10.20.0.2'
- functest_repo_dir: '/home/opnfv/repos/functest'
- foreman:
node: 'opnfv-jump-2'
installer_type: 'foreman'
installer_ip: '172.30.10.73'
- functest_repo_dir: '/home/opnfv/repos/functest'
+ - apex:
+ node: 'opnfv-jump-1'
+ installer_type: 'apex'
+ installer_ip: '192.168.X.X'
+ - compass:
+ node: 'huawei-us-deploy-bare-1'
+ installer_type: 'compass'
+ installer_ip: '192.168.200.2'
+ - joid:
+ node: 'intel-pod5'
+ installer_type: 'compass'
+ installer_ip: '127.0.0.1'
pod:
- - orange-build:
- node: 'orange-build'
- installer_type: 'foreman'
+ - orange-test1:
+ node: 'orange-test1'
+ installer_type: 'fuel'
installer_ip: '172.30.10.73'
- functest_repo_dir: '/home/opnfv/repos/functest'
+ - orange-fr-pod2:
+ node: 'orange-fr-pod2'
+ installer_type: 'joid'
+ installer_ip: '127.0.0.1'
+ - huawei-build:
+ node: 'huawei-us-deploy-bare-1'
+ installer_type: 'compass'
+ installer_ip: '192.168.200.2'
+ - intel-pod5:
+ node: 'intel-pod5'
+ installer_type: 'joid'
+ installer_ip: '127.0.0.1'
jobs:
- 'set-functest-env-{pod}'
- 'functest-odl-test-{pod}'
- 'functest-vims-{installer}-{stream}'
- 'functest-vping-test-{pod}'
- - 'functest-daily-{stream}'
- - 'functest-merge-{stream}'
- 'functest-verify-{stream}'
# stream: branch with - in place of / (eg. stable-arno)
- job-template:
name: set-functest-env-{pod}
- project-type: freestyle
-
- node: '{pod}'
-
- logrotate:
- daysToKeep: 30
- numToKeep: 10
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
+ node: '{node}'
builders:
- 'set-functest-env'
-
-
- job-template:
name: clean-functest-env-{pod}
- project-type: freestyle
-
- node: '{pod}'
-
- logrotate:
- daysToKeep: 30
- numToKeep: 10
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
+ node: '{node}'
builders:
- 'functest-cleanup'
-
- job-template:
name: set-functest-env-{installer}-{stream}
- project-type: freestyle
-
node: '{node}'
- logrotate:
- daysToKeep: 30
- numToKeep: 10
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
-
builders:
- 'set-functest-env'
-
- job-template:
name: clean-functest-env-{installer}-{stream}
- project-type: freestyle
-
node: '{node}'
- logrotate:
- daysToKeep: 30
- numToKeep: 10
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
-
builders:
- 'functest-cleanup'
- job-template:
name: functest-openstack-bench-test-{pod}
- project-type: freestyle
-
- node: '{pod}'
-
- logrotate:
- daysToKeep: 30
- numToKeep: 10
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
+ node: '{node}'
builders:
- 'functest-rally-bench'
-
- job-template:
name: functest-openstack-tempest-smoke-test-{pod}
- project-type: freestyle
-
- node: '{pod}'
-
- logrotate:
- daysToKeep: 30
- numToKeep: 10
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
+ node: '{node}'
builders:
- 'functest-tempest-smoke'
- job-template:
name: functest-odl-test-{pod}
- project-type: freestyle
-
- node: '{pod}'
-
- logrotate:
- daysToKeep: 30
- numToKeep: 10
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
+ node: '{node}'
builders:
- shell: |
- 'functest-odl'
-
- job-template:
name: functest-vping-test-{pod}
- project-type: freestyle
-
- node: '{pod}'
-
- logrotate:
- daysToKeep: 30
- numToKeep: 10
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
+ node: '{node}'
builders:
- 'functest-vping'
-
- job-template:
name: functest-{pod}
- project-type: freestyle
-
- node: '{pod}'
+ node: '{node}'
parameters:
- project-parameter:
project: '{project}'
+ - functest-parameter
- string:
name: INSTALLER_TYPE
default: '{installer_type}'
name: INSTALLER_IP
default: '{installer_ip}'
description: "Installer IP."
- - string:
- name: FUNCTEST_REPO_DIR
- default: '{functest_repo_dir}'
- description: "Directory where the root functest repo is cloned in the docker."
- '{pod}'
scm:
refspec: ''
branch: master
- logrotate:
- daysToKeep: 30
- numToKeep: 10
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
-
builders:
+ - 'functest-cleanup'
- 'set-functest-env'
- 'functest-all'
- - 'functest-store-results'
- - 'functest-cleanup'
+# - 'functest-store-results'
- job-template:
name: functest-{installer}-{stream}
- project-type: freestyle
-
node: '{node}'
parameters:
- project-parameter:
project: '{project}'
+ - functest-parameter
- string:
name: INSTALLER_TYPE
default: '{installer_type}'
name: INSTALLER_IP
default: '{installer_ip}'
description: "Installer IP."
- - string:
- name: FUNCTEST_REPO_DIR
- default: '{functest_repo_dir}'
- description: "Directory where the root functest repo is cloned in the docker."
- string:
name: GIT_BASE
default: ssh://gerrit.opnfv.org:29418/$PROJECT
refspec: ''
branch: master
- logrotate:
- daysToKeep: 30
- numToKeep: 10
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
-
builders:
+ - 'functest-cleanup'
- 'set-functest-env'
- 'functest-all'
- - 'functest-store-results'
- - 'functest-cleanup'
+# - 'functest-store-results'
- job-template:
name: functest-vims-{installer}-{stream}
- project-type: freestyle
-
node: '{node}'
parameters:
- project-parameter:
project: '{project}'
+ - functest-parameter
- string:
name: INSTALLER_TYPE
default: '{installer_type}'
name: INSTALLER_IP
default: '{installer_ip}'
description: "Installer IP."
- - string:
- name: FUNCTEST_REPO_DIR
- default: '{functest_repo_dir}'
- description: "Directory where the root functest repo is cloned in the docker."
- string:
name: GIT_BASE
default: ssh://gerrit.opnfv.org:29418/$PROJECT
refspec: ''
branch: master
- logrotate:
- daysToKeep: 30
- numToKeep: 10
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
-
builders:
- 'functest-vims'
-- job-template:
- name: 'functest-daily-{stream}'
-
- node: master
-
- # Job template for daily builders
- #
- # Required Variables:
- # stream: branch with - in place of / (eg. stable)
- # branch: branch (eg. stable)
-
- project-type: freestyle
- varsetabove: '{somevar}'
-
- logrotate:
- daysToKeep: '{build-days-to-keep}'
- numToKeep: '{build-num-to-keep}'
- artifactDaysToKeep: '{build-artifact-days-to-keep}'
- artifactNumToKeep: '{build-artifact-num-to-keep}'
-
- parameters:
- - project-parameter:
- project: '{project}'
- - functest-parameter:
- gs-pathname: '{gs-pathname}'
-
- scm:
- - git-scm:
- credentials-id: '{ssh-credentials}'
- refspec: ''
- branch: '{stream}'
-
- wrappers:
- - ssh-agent-credentials:
- user: '{ssh-credentials}'
-
- triggers:
- - 'functest-{stream}'
-
- prebuilders:
- - test-macro
-
- builders:
- - shell:
- !include-raw ../opnfvdocs/docu-build.sh
-
- postbuilders:
- - test-macro
-
- job-template:
name: 'functest-verify-{stream}'
- node: master
-
- project-type: freestyle
-
- logrotate:
- daysToKeep: 30
- numToKeep: 10
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
-
parameters:
- project-parameter:
project: '{project}'
refspec: '$GERRIT_REFSPEC'
choosing-strategy: 'gerrit'
- wrappers:
- - ssh-agent-credentials:
- user: '{ssh-credentials}'
-
triggers:
- gerrit:
trigger-on:
branch-pattern: '**/{branch}'
builders:
- - shell:
- !include-raw ../opnfvdocs/docu-build.sh
-
-- job-template:
- name: 'functest-merge-{stream}'
-
- node: master
-
- # builder-merge job to run JJB update
- #
- # This job's purpose is to update all the JJB
-
- project-type: freestyle
-
- logrotate:
- daysToKeep: 30
- numToKeep: 40
- artifactDaysToKeep: -1
- artifactNumToKeep: 5
-
- parameters:
- - project-parameter:
- project: '{project}'
- - gerrit-parameter:
- branch: '{branch}'
-
- scm:
- - gerrit-trigger-scm:
- credentials-id: '{ssh-credentials}'
- refspec: ''
- choosing-strategy: 'default'
-
- wrappers:
- - ssh-agent-credentials:
- user: '{ssh-credentials}'
-
- triggers:
- - gerrit:
- trigger-on:
- - change-merged-event
- - comment-added-contains-event:
- comment-contains-value: 'remerge'
- projects:
- - project-compare-type: 'ANT'
- project-pattern: 'functest'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
-
- builders:
- - shell:
- !include-raw ../opnfvdocs/docu-build.sh
+ - shell: |
+ echo "Nothing to verify!"
########################
# parameter macros
name: GS_PATHNAME
default: '{gs-pathname}'
description: "Version directory where the opnfv documents will be stored in gs repository"
+ - string:
+ name: FUNCTEST_REPO_DIR
+ default: "/home/opnfv/repos/functest"
+ description: "Directory where the Functest repository is cloned"
+
+- parameter:
+ name: orange-test1
+ parameters:
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: "Override GIT_BASE"
- parameter:
- name: orange-build
+ name: orange-fr-pod2
parameters:
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
description: "Override GIT_BASE"
+ - string:
+ name: LAB_CONFIG
+ default: "/home/opnfv/repos/functest"
+ description: "Openstack credentials on the dev lab"
- parameter:
name: opnfv-jump-1
default: ssh://gerrit.opnfv.org:29418/$PROJECT
description: "Override GIT_BASE"
+- parameter:
+ name: huawei-build
+ parameters:
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: "Override GIT_BASE"
+
+- parameter:
+ name: intel-pod5
+ parameters:
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: "Override GIT_BASE"
+ - string:
+ name: LAB_CONFIG
+ default: "/home/ubuntu/joid_config/admin-openrc"
+ description: "Openstack credentials on the dev lab"
+
- parameter:
name: opnfv-jump-2
parameters:
container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
docker exec $container_id $cmd
-
- builder:
name: set-functest-env
builders:
- shell: |
#!/bin/bash
set +e
-
+ if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
+ INSTALLER_IP=$(grep instack /var/lib/libvirt/dnsmasq/default.leases \
+ |awk '{print $3}' | head -n 1)
+ sshkey="-v /root/.ssh/id_rsa:/root/.ssh/id_rsa"
+ fi
echo "Functest: Start Docker and prepare environment"
- envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP}"
- docker ps -a | grep opnfv/functest | awk '{print $1}' | xargs docker rm -f &>/dev/null
- docker pull opnfv/functest
- echo "Functest: Running docker run command: docker run -i -e $envs opnfv/functest /bin/bash &"
- docker run -i -e $envs opnfv/functest /bin/bash &
+ envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} -e NODE_NAME=${NODE_NAME}"
+ labconfig=""
+ # If production lab then creds may be retrieved dynamically
+ # If dev lab, credentials may not be the default ones, just provide a path to put them into docker
+ if [ -n "${LAB_CONFIG}" ]; then
+ labconfig="-v ${LAB_CONFIG}:/home/opnfv/functest/conf/openstack.creds"
+ fi
+
+ docker pull opnfv/functest:latest_stable
+ cmd="docker run -id -e $envs ${labconfig} ${sshkey} opnfv/functest:latest_stable /bin/bash"
+ echo "Functest: Running docker run command: ${cmd}"
+ ${cmd}
docker ps -a
sleep 5
- container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
+ container_id=$(docker ps | grep 'opnfv/functest:latest_stable' | awk '{print $1}' | head -1)
echo "Container ID=${container_id}"
if [ -z ${container_id} ]; then
echo "Cannot find opnfv/functest container ID ${container_id}. Please check if it is existing."
docker start ${container_id}
sleep 5
docker ps
- if [ $(docker ps | grep opnfv/functest | wc -l) == 0 ]; then
+ if [ $(docker ps | grep 'opnfv/functest:latest_stable' | wc -l) == 0 ]; then
echo "The container opnfv/functest with ID=${container_id} has not been properly started. Exiting..."
exit 1
fi
echo "Executing command inside the docker: ${cmd}"
docker exec ${container_id} ${cmd}
-
- builder:
name: functest-vping
builders:
container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
docker exec $container_id $cmd
-
-
- builder:
name: functest-rally-bench
builders:
container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
docker exec $container_id $cmd
-
- builder:
name: functest-vims
builders:
- shell: |
#!/bin/bash
set +e
- cmd="python ${FUNCTEST_REPO_DIR}/testcases/vIMS/CI/vIMS.py \
- --debug ${FUNCTEST_REPO_DIR}/"
+
+ echo "Functest: run Functest vIMS test"
+ cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test vims"
container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
docker exec $container_id $cmd
-
-
- builder:
name: functest-store-results
builders:
builders:
- shell: |
#!/bin/bash
- set +e
- # cleanup: remove any docker containers leftovers
- docker ps | grep opnfv/functest | awk '{print $1}' | xargs docker stop &>/dev/null
- docker ps -a | grep opnfv/functest | awk '{print $1}' | xargs docker rm &>/dev/null
- docker images | grep opnfv/functest | awk '{print $3}' | xargs docker rmi &>/dev/null
+ echo "Cleaning up docker containers/images..."
+
+ # Remove previous running containers if exist
+ if [[ ! -z $(docker ps -a | grep opnfv/functest) ]]; then
+ echo "Removing existing opnfv/functest containers..."
+ docker ps | grep opnfv/functest | awk '{print $1}' | xargs docker stop
+ docker ps -a | grep opnfv/functest | awk '{print $1}' | xargs docker rm
+ fi
+ # Remove existing images if exist
+ if [[ ! -z $(docker images | grep opnfv/functest) ]]; then
+ echo "Docker images to remove:"
+ docker images | head -1 && docker images | grep opnfv/functest
+ image_tags=($(docker images | grep opnfv/functest | awk '{print $2}'))
+ for tag in "${image_tags[@]}"; do
+ echo "Removing docker image opnfv/functest:$tag..."
+ docker rmi opnfv/functest:$tag
+ done
+ fi