+###################################
+# job configuration for functest
+###################################
- project:
name: functest
+
+ pod:
+ - 'opnfv-jump-1'
+ - 'opnfv-jump-2'
jobs:
- - 'functest-test'
+ - 'functest-{pod}'
+ - 'set-functest-env-{pod}'
+ - 'clean-functest-env-{pod}'
+ - 'functest-openstack-bench-test-{pod}'
+ - 'functest-openstack-tempest-smoke-test-{pod}'
+ - 'functest-odl-test-{pod}'
+ - 'functest-vims-test-{pod}'
+ - 'functest-vping-test-{pod}'
- 'functest-daily-{stream}'
- 'functest-merge'
- - 'functest-verify'
- - 'functest-build-docs'
+ - 'functest-verify-{stream}'
- # stream: branch with - in place of / (eg. stable-helium)
- # branch: branch (eg. stable/helium)
+ # stream: branch with - in place of / (eg. stable-arno)
+ # branch: branch (eg. stable/arno)
stream:
- master:
branch: 'master'
+ gs-pathname: ''
+ - stable-arno:
+ branch: 'stable/arno'
+ gs-pathname: '/arno'
project: 'functest'
somevar: 'foo'
+################################
+# job template
+################################
+- job-template:
+ name: set-functest-env-{pod}
+
+ project-type: freestyle
+
+ node: '{pod}'
+
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 10
+ artifactDaysToKeep: -1
+ artifactNumToKeep: -1
+
+ builders:
+ - shell: |
+ #!/bin/bash
+ set +e
+
+ 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}
+
+ project-type: freestyle
+
+ node: '{pod}'
+
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 10
+ artifactDaysToKeep: -1
+ 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
+ python $WORKSPACE/testcases/config_functest.py --debug --force $WORKSPACE/ clean
+
+- job-template:
+ name: functest-openstack-bench-test-{pod}
+
+ project-type: freestyle
+
+ node: '{pod}'
+
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 10
+ artifactDaysToKeep: -1
+ 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
+
+- job-template:
+ name: functest-openstack-tempest-smoke-test-{pod}
+
+ project-type: freestyle
+
+ node: '{pod}'
+
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 10
+ artifactDaysToKeep: -1
+ artifactNumToKeep: -1
+
+ builders:
+ - shell: |
+ #!/bin/bash
+ set +e
+
+ # tempest
+ echo "Functest: run Tempest suite"
+ rally verify start smoke
+ rally verify list
+
+- job-template:
+ name: functest-odl-test-{pod}
+
+ project-type: freestyle
+
+ node: '{pod}'
+
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 10
+ artifactDaysToKeep: -1
+ artifactNumToKeep: -1
+
+ builders:
+ - shell: |
+ #!/bin/bash
+ set +e
+
+ echo "Functest: run ODL suite"
+ $WORKSPACE/testcases/Controllers/ODL/CI/start_tests.sh
+
+- job-template:
+ name: functest-vims-test-{pod}
+
+ project-type: freestyle
+
+ node: '{pod}'
+
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 10
+ artifactDaysToKeep: -1
+ artifactNumToKeep: -1
+
+ builders:
+ - shell: |
+ echo "put your CI scenario here"
+
- job-template:
- name: functest-test
+ name: functest-vping-test-{pod}
project-type: freestyle
+ node: '{pod}'
+
logrotate:
daysToKeep: 30
numToKeep: 10
builders:
- shell: |
- echo "Hello world from functest"
+ #!/bin/bash
+ set +e
+
+ # vPing
+ echo "Functest: run vPing"
+ python $WORKSPACE/testcases/vPing/CI/libraries/vPing.py --debug $WORKSPACE/
+
+- job-template:
+ name: functest-{pod}
+
+ project-type: freestyle
+
+ node: '{pod}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+
+ scm:
+ - git-scm:
+ credentials-id: '{ssh-credentials}'
+ refspec: ''
+ branch: master
+
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 10
+ artifactDaysToKeep: -1
+ artifactNumToKeep: -1
+
+ builders:
+ - 'functest-all'
+ - 'functest-store-results'
+ - 'functest-cleanup'
- job-template:
name: 'functest-daily-{stream}'
+ node: master
+
# Job template for daily builders
#
# Required Variables:
parameters:
- project-parameter:
project: '{project}'
+ - functest-parameter:
+ gs-pathname: '{gs-pathname}'
scm:
- git-scm:
credentials-id: '{ssh-credentials}'
refspec: ''
- branch: '{branch}'
+ branch: '{stream}'
wrappers:
- ssh-agent-credentials:
user: '{ssh-credentials}'
triggers:
- - timed: 'H H * * *'
+ - 'functest-{stream}'
prebuilders:
- test-macro
builders:
- - shell: |
- pwd
- find .
- echo "Hello world from functest {somevar} daily"
+ - shell:
+ !include-raw ../opnfvdocs/docu-build.sh
postbuilders:
- test-macro
- job-template:
- name: 'functest-verify'
+ name: 'functest-verify-{stream}'
+
+ node: master
project-type: freestyle
- project-parameter:
project: '{project}'
- gerrit-parameter:
- branch: 'master'
+ branch: '{branch}'
scm:
- gerrit-trigger-scm:
credentials-id: '{ssh-credentials}'
project-pattern: 'functest'
branches:
- branch-compare-type: 'ANT'
- branch-pattern: '**/master'
+ branch-pattern: '**/{branch}'
builders:
- - shell: |
- pwd
- find .
- echo "verify logic goes here"
+ - shell:
+ !include-raw ../opnfvdocs/docu-build.sh
- job-template:
name: 'functest-merge'
+ node: master
+
# builder-merge job to run JJB update
#
# This job's purpose is to update all the JJB
- branch-compare-type: 'ANT'
branch-pattern: '**/master'
+ builders:
+ - shell:
+ !include-raw ../opnfvdocs/docu-build.sh
+
+########################
+# parameter macros
+########################
+- parameter:
+ name: functest-parameter
+ parameters:
+ - string:
+ name: GS_PATHNAME
+ default: '{gs-pathname}'
+ description: "Version directory where the opnfv documents will be stored in gs repository"
+
+########################
+# trigger macros
+########################
+- trigger:
+ name: 'functest-master'
+ triggers:
+ - pollscm: "H 9 * * *"
+
+- trigger:
+ name: 'functest-stable-arno'
+ triggers:
+ - pollscm: "H 21 * * *"
+
+# macros
+- builder:
+ name: functest-all
builders:
- shell: |
- pwd
- find .
- echo "merge logic goes here"
+ #!/bin/bash
+ set +e
-- job-template:
- name: 'functest-build-docs'
+ echo "Functest: prepare Functest environment"
+ mkdir -p $HOME/functest/
+ source $HOME/functest/opnfv-openrc.sh
- project-type: freestyle
+ # WORKSPACE is the root of the functest repo
+ # go into WORKSPACE where the functest repo is cloned
+ cd $WORKSPACE
- logrotate:
- daysToKeep: 30
- numToKeep: 40
- artifactDaysToKeep: -1
- artifactNumToKeep: 5
+ # prepare
+ echo "Functest: prepare Functest environment"
+ python $WORKSPACE/testcases/config_functest.py --debug $WORKSPACE/ start
- parameters:
- - project-parameter:
- project: '{project}'
- - gerrit-parameter:
- branch: 'master'
+ # vPing
+ echo "Functest: run vPing"
+ python $WORKSPACE/testcases/vPing/CI/libraries/vPing.py --debug $WORKSPACE/
- scm:
- - gerrit-trigger-scm:
- credentials-id: '{ssh-credentials}'
- refspec: ''
- choosing-strategy: 'default'
+ # ODL
+ echo "Functest: run ODL suite"
+ $WORKSPACE/testcases/Controllers/ODL/CI/start_tests.sh
- wrappers:
- - ssh-agent-credentials:
- user: '{ssh-credentials}'
+ # rally
+ echo "Functest: run Functest Rally Bench suites"
+ python $WORKSPACE/testcases/VIM/OpenStack/CI/libraries/run_rally.py --debug $WORKSPACE/ all
- 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: '**/master'
+ # tempest
+ echo "Functest: run Tempest suite"
+ rally verify start smoke
+ rally verify list
- builders:
- - shell:
- !include-raw build-docu.sh
+ # 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
+ # save tempest.conf for further troubleshooting
+ cp $HOME/.rally/tempest/for-deployment-*/tempest.conf $HOME/functest/results
+- builder:
+ name: functest-store-results
+ builders:
+ - shell:
+ !include-raw res-build.sh
+- builder:
+ name: functest-cleanup
+ builders:
+ - shell:
+ - shell: |
+ #!/bin/bash
+ set +e
+ # cleanup
+ python $WORKSPACE/testcases/config_functest.py --debug --force $WORKSPACE/ clean