node: 'opnfv-jump-2'
installer_type: 'foreman'
installer_ip: '172.30.10.73'
+ - apex:
+ node: 'opnfv-jump-1'
+ installer_type: 'apex'
+ installer_ip: '192.168.X.X'
pod:
- orange-build:
node: 'orange-build'
- 'functest-openstack-bench-test-{pod}'
- 'functest-openstack-tempest-smoke-test-{pod}'
- 'functest-odl-test-{pod}'
- - 'functest-vims-test-{pod}'
+ - 'functest-vims-{installer}-{stream}'
- 'functest-vping-test-{pod}'
- 'functest-daily-{stream}'
- 'functest-merge-{stream}'
- job-template:
name: set-functest-env-{pod}
- project-type: freestyle
-
node: '{pod}'
logrotate:
artifactNumToKeep: -1
builders:
- - shell: |
- #!/bin/bash
- set +e
-
- echo "Functest: prepare Functest environment"
- mkdir -p $HOME/functest/
- # source openstack vars
- if [[ ! -f $HOME/opnfv-openrc.sh ]]; then
- echo "Unable to access file $HOME/opnfv-openrc.sh"
- exit 1
- fi
- source $HOME/opnfv-openrc.sh
-
- # WORKSPACE is the root of the functest repo
- # go into WORKSPACE where the functest repo is cloned
- cd $WORKSPACE
-
- # prepare
- echo "Functest: prepare Functest environment"
- python $WORKSPACE/testcases/config_functest.py --debug $WORKSPACE/ start
+ - 'set-functest-env'
- job-template:
name: clean-functest-env-{pod}
- project-type: freestyle
-
node: '{pod}'
logrotate:
artifactNumToKeep: -1
builders:
- - shell: |
- #!/bin/bash
- set +e
-
- # collect results
- echo "Functest: copy results and clean Functest environment"
- mkdir -p $HOME/functest/results
-
- # save ODL results
- cp -Rf $WORSPACE/testcases/Controllers/ODL/CI/logs $HOME/functest/results/ODL
-
- # save tempest.conf for further troubleshooting
- cp $HOME/.rally/tempest/for-deployment-*/tempest.conf $HOME/functest/results
-
- # cleanup
- # source openstack vars
- source $HOME/opnfv-openrc.sh
- python $WORKSPACE/testcases/config_functest.py --debug --force $WORKSPACE/ clean
+ - 'functest-cleanup'
- job-template:
name: set-functest-env-{installer}-{stream}
- project-type: freestyle
-
node: '{node}'
logrotate:
artifactNumToKeep: -1
builders:
- - shell: |
- #!/bin/bash
- set +e
-
- echo "Functest: prepare Functest environment"
- mkdir -p $HOME/functest/
- # source openstack vars
- if [[ ! -f $HOME/opnfv-openrc.sh ]]; then
- echo "Unable to access file $HOME/opnfv-openrc.sh"
- exit 1
- fi
- source $HOME/opnfv-openrc.sh
-
- # WORKSPACE is the root of the functest repo
- # go into WORKSPACE where the functest repo is cloned
- cd $WORKSPACE
-
- # prepare
- echo "Functest: prepare Functest environment"
- python $WORKSPACE/testcases/config_functest.py --debug $WORKSPACE/ start
+ - 'set-functest-env'
- job-template:
name: clean-functest-env-{installer}-{stream}
- project-type: freestyle
-
node: '{node}'
logrotate:
artifactNumToKeep: -1
builders:
- - shell: |
- #!/bin/bash
- set +e
-
- # collect results
- echo "Functest: copy results and clean Functest environment"
- mkdir -p $HOME/functest/results
-
- # save ODL results
- cp -Rf $WORSPACE/testcases/Controllers/ODL/CI/logs $HOME/functest/results/ODL
-
- # save tempest.conf for further troubleshooting
- cp $HOME/.rally/tempest/for-deployment-*/tempest.conf $HOME/functest/results
-
- # cleanup
- # source openstack vars
- source $HOME/opnfv-openrc.sh
- python $WORKSPACE/testcases/config_functest.py --debug --force $WORKSPACE/ clean
+ - 'functest-cleanup'
- job-template:
name: functest-openstack-bench-test-{pod}
- project-type: freestyle
-
node: '{pod}'
logrotate:
artifactNumToKeep: -1
builders:
- - shell: |
- #!/bin/bash
- set +e
-
- echo "Functest: run Functest Rally Bench suites"
- python $WORKSPACE/testcases/VIM/OpenStack/CI/libraries/run_rally.py --debug $WORKSPACE/ all
+ - 'functest-rally-bench'
- job-template:
name: functest-openstack-tempest-smoke-test-{pod}
- project-type: freestyle
-
node: '{pod}'
logrotate:
artifactNumToKeep: -1
builders:
- - shell: |
- #!/bin/bash
- set +e
-
- # tempest
- echo "Functest: run Tempest suite"
- rally verify start smoke
- rally verify list
+ - 'functest-tempest-smoke'
- job-template:
name: functest-odl-test-{pod}
- project-type: freestyle
-
node: '{pod}'
logrotate:
builders:
- shell: |
- #!/bin/bash
- set +e
-
- echo "Functest: run ODL suite"
- $WORKSPACE/testcases/Controllers/ODL/CI/start_tests.sh
+ - 'functest-odl'
- job-template:
- name: functest-vims-test-{pod}
-
- project-type: freestyle
+ name: functest-vping-test-{pod}
node: '{pod}'
artifactNumToKeep: -1
builders:
- - shell: |
- echo "put your CI scenario here"
-
+ - 'functest-vping'
- job-template:
- name: functest-vping-test-{pod}
-
- project-type: freestyle
+ name: functest-{pod}
node: '{pod}'
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - functest-parameter
+ - string:
+ name: INSTALLER_TYPE
+ default: '{installer_type}'
+ description: "Installer name that is used for deployment."
+ - string:
+ name: INSTALLER_IP
+ default: '{installer_ip}'
+ description: "Installer IP."
+ - '{pod}'
+
+ scm:
+ - git-scm:
+ credentials-id: '{ssh-credentials}'
+ refspec: ''
+ branch: master
+
logrotate:
daysToKeep: 30
numToKeep: 10
artifactNumToKeep: -1
builders:
- - shell: |
- #!/bin/bash
- set +e
-
- # vPing
- echo "Functest: run vPing"
- python $WORKSPACE/testcases/vPing/CI/libraries/vPing.py --debug $WORKSPACE/ -r
+ - 'functest-cleanup'
+ - 'set-functest-env'
+ - 'functest-all'
+ - 'functest-store-results'
- job-template:
- name: functest-{pod}
-
- project-type: freestyle
+ name: functest-{installer}-{stream}
- 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."
- - '{pod}'
+ - string:
+ name: GIT_BASE
+ default: ssh://gerrit.opnfv.org:29418/$PROJECT
+ description: "Override GIT_BASE"
scm:
- git-scm:
artifactNumToKeep: -1
builders:
- - 'functest-fetch-os-creds'
+ - 'functest-cleanup'
+ - 'set-functest-env'
- 'functest-all'
- 'functest-store-results'
- - 'functest-cleanup'
- job-template:
- name: functest-{installer}-{stream}
-
- project-type: freestyle
+ name: functest-vims-{installer}-{stream}
node: '{node}'
parameters:
- project-parameter:
project: '{project}'
+ - functest-parameter
- string:
name: INSTALLER_TYPE
default: '{installer_type}'
artifactNumToKeep: -1
builders:
- - 'functest-fetch-os-creds'
- - 'functest-all'
- - 'functest-store-results'
- - 'functest-cleanup'
+ - '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:
refspec: ''
branch: '{stream}'
- wrappers:
- - ssh-agent-credentials:
- user: '{ssh-credentials}'
-
triggers:
- 'functest-{stream}'
- job-template:
name: 'functest-verify-{stream}'
- node: master
-
- project-type: freestyle
-
logrotate:
daysToKeep: 30
numToKeep: 10
refspec: '$GERRIT_REFSPEC'
choosing-strategy: 'gerrit'
- wrappers:
- - ssh-agent-credentials:
- user: '{ssh-credentials}'
-
triggers:
- gerrit:
trigger-on:
- 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
refspec: ''
choosing-strategy: 'default'
- wrappers:
- - ssh-agent-credentials:
- user: '{ssh-credentials}'
-
triggers:
- gerrit:
trigger-on:
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-build
#!/bin/bash
set +e
- echo "Functest: prepare Functest environment"
- mkdir -p $HOME/functest/
+ echo "Functest: running all the tests"
+ cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh"
+ container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
+ docker exec $container_id $cmd
- # source openstack vars
- if [ ! -f $HOME/opnfv-openrc.sh ]; then
- echo "Credentials file not found in "$HOME/opnfv-openrc.sh
+- builder:
+ name: set-functest-env
+ builders:
+ - shell: |
+ #!/bin/bash
+ set +e
+ if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
+ INSTALLER_IP=$(cat instack /var/lib/libvirt/dnsmasq/default.leases \
+ |sed 's/.*192/192/g' | sed 's/\ in.*//g')
+ fi
+ echo "Functest: Start Docker and prepare environment"
+ envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP}"
+ docker pull opnfv/functest:latest_stable
+ echo "Functest: Running docker run command: docker run -i -e $envs opnfv/functest /bin/bash &"
+ docker run -i -e $envs opnfv/functest /bin/bash &
+ docker ps -a
+ sleep 5
+ container_id=$(docker ps -a | grep opnfv/functest | 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 ps -a
exit 1
fi
- echo "Sourcing the OpenStack credentials in"$HOME/opnfv-openrc.sh
- source $HOME/opnfv-openrc.sh
-
- # WORKSPACE is the root of the functest repo
- # go into WORKSPACE where the functest repo is cloned
- cd $WORKSPACE
-
- # prepare
- echo "Functest: prepare Functest environment"
- python $WORKSPACE/testcases/config_functest.py --debug $WORKSPACE/ start
- if [ $? != 0 ]; then
- echo "Error when configuring Functest environment"
+ echo "Starting the container: docker start ${container_id}"
+ docker start ${container_id}
+ sleep 5
+ docker ps
+ if [ $(docker ps | grep opnfv/functest | wc -l) == 0 ]; then
+ echo "The container opnfv/functest with ID=${container_id} has not been properly started. Exiting..."
exit 1
fi
+ cmd="${FUNCTEST_REPO_DIR}/docker/prepare_env.sh"
+ echo "Executing command inside the docker: ${cmd}"
+ docker exec ${container_id} ${cmd}
+
+- builder:
+ name: functest-vping
+ builders:
+ - shell: |
+ #!/bin/bash
+ set +e
- # vPing
echo "Functest: run vPing"
- python $WORKSPACE/testcases/vPing/CI/libraries/vPing.py --debug $WORKSPACE/ -r
+ cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test vping"
+ container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
+ docker exec $container_id $cmd
- # ODL
- echo "Functest: run ODL suite"
+- builder:
+ name: functest-odl
+ builders:
+ - shell: |
+ #!/bin/bash
+ set +e
- if [ $INSTALLER_TYPE == "fuel" ]; then
- odl_ip=$(keystone catalog --service network | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
- neutron_ip=$(keystone catalog --service identity | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
- usr_name=$(env | grep OS | grep OS_USERNAME | cut -f2 -d'=')
- pass=$(env | grep OS | grep OS_PASSWORD | cut -f2 -d'=')
- odl_port=8181
- ODL_PORT=$odl_port ODL_IP=$odl_ip NEUTRON_IP=$neutron_ip USR_NAME=$usr_name PASS=$pass \
- $WORKSPACE/testcases/Controllers/ODL/CI/start_tests.sh
- elif [ $INSTALLER_TYPE == "foreman" ]; then
- #odl_port=8081
- $WORKSPACE/testcases/Controllers/ODL/CI/start_tests.sh
- else
- echo "INSTALLER_TYPE not valid."
- exit 1
- fi
+ echo "Functest: run ODL suite"
+ cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test odl"
+ container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
+ docker exec $container_id $cmd
- # rally
- echo "Functest: run Functest Rally Bench suites"
- python $WORKSPACE/testcases/VIM/OpenStack/CI/libraries/run_rally.py --debug $WORKSPACE/ all
+- builder:
+ name: functest-tempest-smoke
+ builders:
+ - shell: |
+ #!/bin/bash
+ set +e
# tempest
echo "Functest: run Tempest suite"
- rally verify start smoke
- rally verify list
+ cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test tempest"
+ container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
+ docker exec $container_id $cmd
+
+- builder:
+ name: functest-rally-bench
+ builders:
+ - shell: |
+ #!/bin/bash
+ set +e
- # collect results
- echo "Functest: copy results and clean Functest environment"
- mkdir -p $HOME/functest/results
+ echo "Functest: run Functest Rally Bench suites"
+ cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test rally"
+ container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
+ docker exec $container_id $cmd
- # save ODL results
- cp -Rf $WORKSPACE/testcases/Controllers/ODL/CI/logs $HOME/functest/results/ODL
+- builder:
+ name: functest-vims
+ builders:
+ - shell: |
+ #!/bin/bash
+ set +e
- # save tempest.conf for further troubleshooting
- cp $HOME/.rally/tempest/for-deployment-*/tempest.conf $HOME/functest/results
+ 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:
- shell: |
#!/bin/bash
- set +e
- # cleanup
- source $HOME/opnfv-openrc.sh
- python $WORKSPACE/testcases/config_functest.py --debug --force $WORKSPACE/ clean
+ echo "Cleaning up docker containers/images..."
-- builder:
- name: functest-fetch-os-creds
- builders:
- - shell:
- !include-raw ../../utils/fetch_os_creds.sh
+ # 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