branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
- - euphrates:
- branch: 'stable/{stream}'
- gs-pathname: '/{stream}'
- disabled: false
- job-template:
name: 'barometer-verify-{stream}'
gs-pathname: '/{stream}'
gs-packagepath: '/{stream}/{suite}'
disabled: false
- - euphrates:
- branch: 'stable/{stream}'
- gs-pathname: '/{stream}'
- gs-packagepath: '/{stream}/{suite}'
- disabled: false
suite:
- 'posca_stress_traffic'
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
- - euphrates:
- branch: 'stable/{stream}'
- disabled: false
- job-template:
name: 'calipso-verify-{stream}'
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
- - euphrates:
- branch: 'stable/{stream}'
- gs-pathname: '/{stream}'
- disabled: false
- job-template:
name: 'container4nfv-verify-{stream}'
- 'testapi-parameter'
- 'daisy-project-parameter':
gs-pathname: '{gs-pathname}'
+ - 'deploy-scenario'
builders:
- description-setter:
- 'testapi-parameter'
- 'daisy-project-parameter':
gs-pathname: '{gs-pathname}'
+ - 'deploy-scenario'
- string:
name: DEPLOY_TIMEOUT
default: '150'
run_tiers() {
tiers=$1
- if [[ ${BRANCH##*/} == "stable/euphrates" ]]; then
- cmd_opt="prepare_env start && run_tests -r -t all"
- [[ $BUILD_TAG =~ "suite" ]] && cmd_opt="prepare_env start && run_tests -t all"
- else
- cmd_opt="run_tests -r -t all"
- [[ $BUILD_TAG =~ "suite" ]] && cmd_opt="run_tests -t all"
- fi
+ cmd_opt="run_tests -r -t all"
+ [[ $BUILD_TAG =~ "suite" ]] && cmd_opt="run_tests -t all"
ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value"
echo 0 > ${ret_val_file}
run_test() {
test_name=$1
- if [[ ${BRANCH##*/} == "stable/euphrates" ]]; then
- cmd_opt="prepare_env start && run_tests -t ${test_name}"
- else
- cmd_opt="run_tests -t ${test_name}"
- fi
+ cmd_opt="run_tests -t ${test_name}"
ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value"
echo 0 > ${ret_val_file}
# Determine which Functest image should be used for the test case
cacert_file_vol="-v ${HOME}/os_cacert:/etc/ssl/certs/mcp_os_cacert"
fi
-if [[ ${BRANCH} == "stable/euphrates" ]]; then
- rc_file_vol="-v ${rc_file}:${FUNCTEST_DIR}/conf/openstack.creds"
-else
- rc_file_vol="-v ${rc_file}:${FUNCTEST_DIR}/conf/env_file"
-fi
+rc_file_vol="-v ${rc_file}:${FUNCTEST_DIR}/conf/env_file"
# Set iptables rule to allow forwarding return traffic for container
if ! sudo iptables -C FORWARD -j RETURN 2> ${redirect} || ! sudo iptables -L FORWARD | awk 'NR==3' | grep RETURN 2> ${redirect}; then
branch: '{stream}'
gs-pathname: ''
disabled: false
- - fraser:
- branch: 'stable/{stream}'
- gs-pathname: '/{stream}'
- disabled: false
- - euphrates:
+ - fraser: &fraser
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
branch: '{stream}'
gs-pathname: ''
disabled: false
- - fraser:
+ - fraser: &fraser
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
- master:
branch: '{stream}'
disabled: false
+ - fraser:
+ branch: 'stable/{stream}'
+ disabled: false
arch_tag:
- 'amd64':
branch: '{stream}'
gs-pathname: ''
disabled: false
- - euphrates:
+ - fraser: &fraser
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
name: EXTERNAL_NETWORK
default: 'external'
description: 'external network for test'
+
+- parameter:
+ name: 'deploy-scenario'
+ parameters:
+ - string:
+ name: DEPLOY_SCENARIO
+ default: 'os-nosdn-nofeature-ha'
+ description: "OPNFV deployment scenario"
default: 'refs/heads/{branch}'
description: "Default refspec needed for manually triggering."
+##
+# Reporting Deployment Results
+#
+# To report deployment results to
+# http://testresults.opnfv.org/test/#/deployresults, add the following
+# parameters, builders, and publishers to a deployment job:
+#
+# parameters:
+# - testapi-parameter
+#
+# builders:
+# - track-begin-timestamp
+#
+# publishers:
+# - report-provision-result
+#
+# Note: The following string parameter must also exist, as they are used
+# when reporting the provision result:
+#
+# * INSTALLER
+# * INSTALLER_VERSION
+# * DEPLOY_SCENARIO
+#
+# most installers include these but you should verify first before
+# adding the publisher, otherwise the deployment build may be marked
+# unstable.
+#
+##
- parameter:
name: testapi-parameter
parameters:
name: TESTAPI_URL
default: 'http://testresults.opnfv.org/test/api/v1'
description: "Default TestAPI URL, currently using v1"
- - string:
- name: DEPLOY_SCENARIO
- default: 'os-nosdn-nofeature-ha'
- description: "OPNFV deployment scenario"
- string:
name: INSTALLER_VERSION
default: 'master'
set -o pipefail
cd ~/bifrost
+# set path for XCI repository
+export XCI_PATH=~/bifrost/releng-xci
+
# provision 3 VMs; xcimaster, controller, and compute
./scripts/bifrost-provision.sh | ts
export XCI_PATH=/home/devuser/releng-xci
export XCI_VENV=${XCI_PATH}/venv
-ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm "source $XCI_VENV/bin/activate; source ${XCI_PATH}/.cache/xci.env && cd releng-xci/xci && ansible-playbook -i installer/osa/files/$XCI_FLAVOR/inventory playbooks/prepare-functest.yml"
+ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm "source $XCI_VENV/bin/activate; while read var; do declare -x \"\${var}\" 2>/dev/null; done < ${XCI_PATH}/.cache/xci.env && cd releng-xci/xci && ansible-playbook -i installer/osa/files/$XCI_FLAVOR/inventory playbooks/prepare-functest.yml"
echo "Running functest"
ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm_opnfv "/root/run-functest.sh"
# Record exit code
functest_exit=$?
+
+case ${DEPLOY_SCENARIO[0]} in
+ os-*)
+ FUNCTEST_LOG=/root/results/functest.log
+ ;;
+ k8-*)
+ FUNCTEST_LOG=/root/results/functest-kubernetes.log
+ ;;
+ *)
+ echo "Unable to determine the installer. Exiting!"
+ exit 1
+ ;;
+esac
+
echo "Functest log"
echo "---------------------------------------------------------------------------------"
-ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm_opnfv "cat /root/results/functest.log"
+ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm_opnfv "cat $FUNCTEST_LOG"
echo "---------------------------------------------------------------------------------"
exit ${functest_exit}
# get the changeset
cd $WORKSPACE
SCENARIOS=$(git diff HEAD^..HEAD --name-only -- 'xci/scenarios' | cut -d "/" -f 3 | uniq)
- # We need to set default scenario for changes that do not mess with scenarios
- NO_SCENARIOS=$(git diff HEAD^..HEAD --name-only | grep -v 'xci/scenarios' | cut -d "/" -f 3 | uniq)
+ # We need to set default scenario for changes that mess with installers
+ INSTALLERS=$(git diff HEAD^..HEAD --name-only -- 'xci/installer' | cut -d "/" -f 3 | uniq)
for CHANGED_SCENARIO in $SCENARIOS; do
- [[ ${DEPLOY_SCENARIO[@]} =~ $CHANGED_SCENARIO ]] || DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]=$CHANGED_SCENARIO
+ DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]=$CHANGED_SCENARIO
done
- for CHANGED_FILE in $NO_SCENARIOS; do
- case $CHANGED_FILE in
+ for CHANGED_INSTALLER in $INSTALLERS; do
+ case $CHANGED_INSTALLER in
kubespray)
- [[ ${DEPLOY_SCENARIO[@]} =~ "k8-nosdn-nofeature" ]] || DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='k8-nosdn-nofeature'
+ DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='k8-nosdn-nofeature'
;;
# Default case (including OSA changes)
*)
- [[ ${DEPLOY_SCENARIO[@]} =~ "os-nosdn-nofeature" ]] || DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='os-nosdn-nofeature'
+ DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='os-nosdn-nofeature'
;;
esac
done
+ # For all other changes, we only need to set a default scenario if it's not set already
+ if git diff HEAD^..HEAD --name-only | grep -q -v 'xci/installer\|xci/scenario'; then
+ [[ ${#DEPLOY_SCENARIO[@]} -eq 0 ]] && DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='os-nosdn-nofeature'
+ fi
# extract releng-xci sha
XCI_SHA=$(cd $WORKSPACE && git rev-parse HEAD)