- project:
name: functest
+ installer:
+ - fuel:
+ 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'
pod:
- - 'opnfv-jump-1'
- - 'opnfv-jump-2'
- - 'orange-build'
+ - orange-build:
+ node: 'orange-build'
+ installer_type: 'foreman'
+ installer_ip: '172.30.10.73'
+ functest_repo_dir: '/home/opnfv/repos/functest'
+
jobs:
- - 'functest-{pod}'
- 'set-functest-env-{pod}'
+ - 'functest-{pod}'
- 'clean-functest-env-{pod}'
+ - 'set-functest-env-{installer}-{stream}'
+ - 'functest-{installer}-{stream}'
+ - 'clean-functest-env-{installer}-{stream}'
- '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'
+ - 'functest-merge-{stream}'
- 'functest-verify-{stream}'
# stream: branch with - in place of / (eg. stable-arno)
artifactNumToKeep: -1
builders:
- - shell: |
- #!/bin/bash
- set +e
+ - 'set-functest-env'
- echo "Functest: prepare Functest environment"
- mkdir -p $HOME/functest/
- source $HOME/functest/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
-
- job-template:
name: clean-functest-env-{pod}
artifactNumToKeep: -1
builders:
- - shell: |
- #!/bin/bash
- set +e
+ - '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'
- # 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
+- job-template:
+ name: clean-functest-env-{installer}-{stream}
+
+ project-type: freestyle
- # save tempest.conf for further troubleshooting
- cp $HOME/.rally/tempest/for-deployment-*/tempest.conf $HOME/functest/results
+ node: '{node}'
- # cleanup
- python $WORKSPACE/testcases/config_functest.py --debug --force $WORKSPACE/ clean
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 10
+ artifactDaysToKeep: -1
+ artifactNumToKeep: -1
+
+ builders:
+ - 'functest-cleanup'
- job-template:
name: functest-openstack-bench-test-{pod}
artifactNumToKeep: -1
builders:
- - shell: |
- #!/bin/bash
- set +e
+ - 'functest-rally-bench'
- echo "Functest: run Functest Rally Bench suites"
- python $WORKSPACE/testcases/VIM/OpenStack/CI/libraries/run_rally.py --debug $WORKSPACE/ all
- job-template:
name: functest-openstack-tempest-smoke-test-{pod}
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}
builders:
- shell: |
- #!/bin/bash
- set +e
+ - 'functest-odl'
- echo "Functest: run ODL suite"
- $WORKSPACE/testcases/Controllers/ODL/CI/start_tests.sh
- job-template:
- name: functest-vims-test-{pod}
+ name: functest-vping-test-{pod}
project-type: freestyle
artifactNumToKeep: -1
builders:
- - shell: |
- echo "put your CI scenario here"
+ - 'functest-vping'
- job-template:
- name: functest-vping-test-{pod}
+ name: functest-{pod}
project-type: freestyle
node: '{pod}'
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - 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."
+ - string:
+ name: FUNCTEST_REPO_DIR
+ default: '{functest_repo_dir}'
+ description: "Directory where the root functest repo is cloned in the docker."
+ - '{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/
+ - 'functest-all'
+ - 'functest-store-results'
+ - 'functest-cleanup'
- job-template:
- name: functest-{pod}
+ name: functest-{installer}-{stream}
project-type: freestyle
- node: '{pod}'
+ node: '{node}'
parameters:
- project-parameter:
project: '{project}'
+ - 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."
+ - 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
+ description: "Override GIT_BASE"
scm:
- git-scm:
- 'functest-store-results'
- 'functest-cleanup'
+- job-template:
+ name: functest-vims-{installer}-{stream}
+
+ project-type: freestyle
+
+ node: '{node}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - 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."
+ - 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
+ description: "Override GIT_BASE"
+
+ scm:
+ - git-scm:
+ credentials-id: '{ssh-credentials}'
+ refspec: ''
+ branch: master
+
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 10
+ artifactDaysToKeep: -1
+ artifactNumToKeep: -1
+
+ builders:
+ - 'functest-vims'
+
- job-template:
name: 'functest-daily-{stream}'
!include-raw ../opnfvdocs/docu-build.sh
- job-template:
- name: 'functest-merge'
+ name: 'functest-merge-{stream}'
node: master
- project-parameter:
project: '{project}'
- gerrit-parameter:
- branch: 'master'
+ branch: '{branch}'
scm:
- gerrit-trigger-scm:
project-pattern: 'functest'
branches:
- branch-compare-type: 'ANT'
- branch-pattern: '**/master'
+ branch-pattern: '**/{branch}'
builders:
- shell:
default: '{gs-pathname}'
description: "Version directory where the opnfv documents will be stored in gs repository"
+- parameter:
+ name: orange-build
+ parameters:
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: "Override GIT_BASE"
+
+- parameter:
+ name: opnfv-jump-1
+ parameters:
+ - string:
+ name: GIT_BASE
+ default: ssh://gerrit.opnfv.org:29418/$PROJECT
+ description: "Override GIT_BASE"
+
+- parameter:
+ name: opnfv-jump-2
+ parameters:
+ - string:
+ name: GIT_BASE
+ default: ssh://gerrit.opnfv.org:29418/$PROJECT
+ description: "Override GIT_BASE"
########################
# trigger macros
########################
triggers:
- pollscm: "H 21 * * *"
+########################
+# builder macros
+########################
# macros
- builder:
name: functest-all
#!/bin/bash
set +e
- echo "Functest: prepare Functest environment"
- mkdir -p $HOME/functest/
- source $HOME/functest/opnfv-openrc.sh
+ # 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
+
+ # Pull and store fresh image from Dockerhub
+ $ docker pull opnfv/functest
+
+ # Run Docker and Functest tests
+ cmd="${FUNCTEST_REPO_DIR}/docker/start.sh"
+ docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
+ -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
+
+
+- builder:
+ name: set-functest-env
+ builders:
+ - shell: |
+ #!/bin/bash
+ set +e
+
+ echo "Functest: spawn Docker and run Functest suite"
+ cmd="${FUNCTEST_REPO_DIR}/docker/start.sh"
+ docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
+ -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
- # 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
+- 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/
+ cmd="python ${FUNCTEST_REPO_DIR}/testcases/vPing/CI/libraries/vPing.py \
+ --debug ${FUNCTEST_REPO_DIR}/ -r"
+ docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
+ -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
+
+- builder:
+ name: functest-odl
+ builders:
+ - shell: |
+ #!/bin/bash
+ set +e
- # ODL
echo "Functest: run ODL suite"
- $WORKSPACE/testcases/Controllers/ODL/CI/start_tests.sh
+ cmd="${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/CI/start_tests.sh"
+ docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
+ -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $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="rally verify start smoke; rally verify list;"
+ docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
+ -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
+
+
+
+- builder:
+ name: functest-rally-bench
+ builders:
+ - shell: |
+ #!/bin/bash
+ set +e
+
+ echo "Functest: run Functest Rally Bench suites"
+ cmd="python ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/run_rally.py \
+ --debug ${FUNCTEST_REPO_DIR}/ all"
+ docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
+ -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
- # collect results
- echo "Functest: copy results and clean Functest environment"
- mkdir -p $HOME/functest/results
- # 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
+ cmd="python ${FUNCTEST_REPO_DIR}/testcases/vIMS/CI/vIMS.py \
+ --debug ${FUNCTEST_REPO_DIR}/"
+ docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
+ -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
+
- # save tempest.conf for further troubleshooting
- cp $HOME/.rally/tempest/for-deployment-*/tempest.conf $HOME/functest/results
- builder:
name: functest-store-results
#!/bin/bash
set +e
- # cleanup
- python $WORKSPACE/testcases/config_functest.py --debug --force $WORKSPACE/ clean
+ # 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
+