# -------------------------------
scenario:
- 'os-nosdn-nofeature-noha':
- auto-trigger-name: 'daily-trigger-disabled'
deploy-scenario: 'os-nosdn-nofeature'
installer-type: 'osa'
- xci-flavor: 'mini'
- - 'os-odl-sfc-noha':
- auto-trigger-name: 'daily-trigger-disabled'
- deploy-scenario: 'os-odl-sfc'
- installer-type: 'osa'
- xci-flavor: 'mini'
+ xci-flavor: 'noha'
+ - 'k8-calico-nofeature-noha':
+ deploy-scenario: 'k8-calico-nofeature'
+ installer-type: 'kubespray'
+ xci-flavor: 'noha'
# -------------------------------
# XCI PODs
# -------------------------------
pod:
- - virtual:
+ - baremetal:
<<: *master
# -------------------------------
# -------------------------------
distro:
- 'ubuntu':
- disabled: false
- slave-label: xci-virtual
+ disabled: true
+ slave-label: xci-baremetal
- 'centos':
disabled: true
- slave-label: xci-virtual
+ slave-label: xci-baremetal
- 'opensuse':
- disabled: false
- slave-label: xci-virtual
+ disabled: true
+ slave-label: xci-baremetal
# -------------------------------
# Phases
phase:
- 'deploy'
- 'functest'
+ - 'yardstick'
# -------------------------------
# jobs
use-build-blocker: true
blocking-jobs:
- '^xci-verify.*'
+ - '^xci-merge.*'
- '^xci-os.*'
+ - '^xci-k8.*'
- '^xci-deploy.*'
- '^xci-functest.*'
- '^bifrost-.*periodic.*'
- '^osa-.*periodic.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
- logrotate-default
+ triggers:
+ - timed: '@midnight'
+
parameters:
- string:
name: DEPLOY_SCENARIO
- label:
name: SLAVE_LABEL
default: '{slave-label}'
- - label:
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
+ - string:
name: XCI_DISTRO
default: '{distro}'
+ - string:
+ name: FUNCTEST_VERSION
+ default: 'hunter'
- string:
name: FUNCTEST_MODE
default: 'tier'
- string:
name: FUNCTEST_SUITE_NAME
- default: 'healthcheck'
+ default: 'smoke'
- string:
name: CI_LOOP
default: 'daily'
default: https://gerrit.opnfv.org/gerrit/$PROJECT
description: 'Git URL to use on this Jenkins Slave'
- triggers:
- - '{auto-trigger-name}'
-
wrappers:
+ - ssh-agent-wrapper
+ - build-timeout:
+ timeout: 240
- fix-workspace-permissions
builders:
INSTALLER_TYPE=$INSTALLER_TYPE
XCI_FLAVOR=$XCI_FLAVOR
CI_LOOP=$CI_LOOP
- XCI_DISTRO=$DISTRO
+ XCI_DISTRO=$XCI_DISTRO
+ FUNCTEST_VERSION=$FUNCTEST_VERSION
+ FUNCTEST_MODE=$FUNCTEST_MODE
+ FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
same-node: true
block: true
- trigger-builds:
INSTALLER_TYPE=$INSTALLER_TYPE
XCI_FLAVOR=$XCI_FLAVOR
CI_LOOP=$CI_LOOP
- XCI_DISTRO=$DISTRO
+ XCI_DISTRO=$XCI_DISTRO
+ FUNCTEST_VERSION=$FUNCTEST_VERSION
FUNCTEST_MODE=$FUNCTEST_MODE
FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
same-node: true
build-step-failure-threshold: 'never'
failure-threshold: 'never'
unstable-threshold: 'FAILURE'
+ - trigger-builds:
+ - project: 'xci-yardstick-{pod}-{distro}-daily-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ DEPLOY_SCENARIO=$DEPLOY_SCENARIO
+ INSTALLER_TYPE=$INSTALLER_TYPE
+ XCI_FLAVOR=$XCI_FLAVOR
+ CI_LOOP=$CI_LOOP
+ XCI_DISTRO=$XCI_DISTRO
+ same-node: true
+ block: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
publishers:
# yamllint disable rule:line-length
# yamllint enable rule:line-length
- email-jenkins-admins-on-failure
- - postbuildscript:
- builders:
- - role: BOTH
- build-on:
- - ABORTED
- - FAILURE
- - NOT_BUILT
- - SUCCESS
- - UNSTABLE
- build-steps:
- - shell: !include-raw: ./xci-cleanup.sh
- mark-unstable-if-failed: true
- job-template:
name: 'xci-{phase}-{pod}-{distro}-daily-{stream}'
use-build-blocker: true
blocking-jobs:
- '^xci-verify.*'
+ - '^xci-merge.*'
- '^xci-deploy.*'
- '^xci-functest.*'
- '^bifrost-.*periodic.*'
- '^osa-.*periodic.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
- throttle:
enabled: true
max-per-node: 1
- logrotate-default
wrappers:
+ - ssh-agent-wrapper
+ - build-timeout:
+ timeout: 240
- fix-workspace-permissions
scm:
default: 'osa'
- string:
name: XCI_FLAVOR
- default: 'mini'
- - label:
+ default: 'noha'
+ - string:
name: XCI_DISTRO
default: 'ubuntu'
- label:
name: SLAVE_LABEL
default: '{slave-label}'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
+ - string:
+ name: FUNCTEST_VERSION
+ default: 'hunter'
- string:
name: FUNCTEST_MODE
default: 'tier'
- string:
name: FUNCTEST_SUITE_NAME
- default: 'healthcheck'
+ default: 'smoke'
- string:
name: CI_LOOP
default: 'daily'
# --------------------------
# builder macros
# --------------------------
+# These need to be properly fixed once the basic deployment, functest, and
+# yardstick jobs are working outside of clean vm.
+# One of the ugly fixes is moving test preparation step into the
+# deployment job itself since test preparation requires some of the
+# things from deployment job. With clean VM, this wasn't an issue
+# since everything was on clean VM. When we move things out of clean
+# VM, things are done in workspaces of the jobs that are different.
+#
+# Apart from these things, we will need to go through the scripts
+# used for verify jobs and make them updated in order to be able to
+# use them for jobs that don't use clean VM.
- builder:
name: 'xci-daily-deploy-macro'
builders:
set -o errexit
set -o pipefail
- cd $WORKSPACE/xci && ./xci-deploy.sh
+ echo "Cleaning the leftovers from the earlier run"
+ echo "---------------------------------------------------------------------------------"
+ for vm in $(sudo virsh list --all --name | grep -v xci_vm); do
+ echo "Removing $vm"
+ sudo virsh destroy $vm > /dev/null 2>&1 || true
+ sudo virsh undefine $vm > /dev/null 2>&1 || true
+ sudo killall -r vbmc > /dev/null 2>&1 || true
+ sudo rm -rf /root/.vbmc > /dev/null 2>&1 || true
+ done
+ echo "---------------------------------------------------------------------------------"
+
+ # select the right PDF/IDF
+ export PDF=$WORKSPACE/xci/var/${NODE_NAME}-pdf.yml
+ export IDF=$WORKSPACE/xci/var/${NODE_NAME}-idf.yml
+ if [[ "$NODE_NAME" =~ "virtual" ]]; then
+ export PDF=$WORKSPACE/xci/var/pdf.yml
+ export IDF=$WORKSPACE/xci/var/idf.yml
+ fi
-- builder:
- name: 'xci-daily-functest-macro'
- builders:
- - shell: |
- #!/bin/bash
- set -o errexit
- set -o pipefail
+ cd $WORKSPACE/xci && ./xci-deploy.sh -p $PDF -i $IDF
- echo "Prepare OPNFV VM for Functest"
+ echo "Prepare OPNFV VM for Tests"
echo "---------------------------------------------------------------------------------"
export XCI_PATH=$WORKSPACE
export XCI_VENV=${XCI_PATH}/venv
while read var; do
declare -x "\${var}" 2>/dev/null
echo $var
- done < ${XCI_PATH}/.cache/xci.env && cd $XCI_PATH/xci && \
- ansible-playbook -i playbooks/dynamic_inventory.py playbooks/prepare-functest.yml
-
- echo "Run Functest"
+ done < ${XCI_PATH}/.cache/xci.env && cd ${XCI_PATH}/xci && \
+ ansible-playbook -i playbooks/dynamic_inventory.py playbooks/prepare-tests.yml
+ ssh root@192.168.122.2 "/root/prepare-tests.sh"
echo "---------------------------------------------------------------------------------"
+
+- builder:
+ name: 'xci-daily-functest-macro'
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -o pipefail
+
ssh root@192.168.122.2 "/root/run-functest.sh"
+ functest_exit=$?
+
+ case ${DEPLOY_SCENARIO[0]} in
+ os-*)
+ FUNCTEST_LOG=/root/functest-results/functest.log
+ ;;
+ k8-*)
+ FUNCTEST_LOG=/root/functest-results/functest-kubernetes.log
+ ;;
+ *)
+ echo "Unable to determine the installer. Exiting!"
+ exit $functest_exit
+ ;;
+ esac
+
+ echo "Functest log"
+ echo "---------------------------------------------------------------------------------"
+ ssh root@192.168.122.2 "cat $FUNCTEST_LOG"
+ echo "---------------------------------------------------------------------------------"
+ exit ${functest_exit}
+- builder:
+ name: 'xci-daily-yardstick-macro'
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o pipefail
+
+ ssh root@192.168.122.2 "/root/run-yardstick.sh"