project-config/jenkins/jobs/senlin.yaml
tengqm 57e28f2237 Fix senlin gate job for service enabling
Senlin API and functional tests do not require any other services other
than the fundational ones (rabbitmq, mysql, keystone, etc) to be
enabled. Senlin integration tests explicitly requires some services to
be installed and configured. This patch fixes both cases to make sure
that the services enabled are explicitly spelt out. This is crutial in
the situation that some services may happen to break our gate jobs and
we have to spend a lot time debugging the gate.

Change-Id: Ia1cd2c918420a04757cdd92a309b82bc830951f2
2017-05-16 08:52:20 -04:00

141 lines
4.7 KiB
YAML

- job-template:
name: '{pipeline}-senlin-dsvm-tempest-{py_ver}-{test_type}{suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 130
- timestamps
builders:
- link-logs
- net-info
- devstack-checkout
- shell: |
#!/bin/bash -xe
export PYTHONUNBUFFERED=True
export DEVSTACK_GATE_NEUTRON=1
export DEVSTACK_GATE_TEMPEST=1
export DEVSTACK_GATE_TEMPEST_NOTESTS=1
export DEVSTACK_GATE_EXERCISES=0
export DEVSTACK_GATE_INSTALL_TESTONLY=1
export KEEP_LOCALRC=1
if [ "{py_ver}" == "py35" ]; then
export DEVSTACK_GATE_USE_PYTHON3=True
else
export DEVSTACK_GATE_USE_PYTHON3=False
fi
export DEVSTACK_GATE_TEMPEST_REGEX="senlin.tests.tempest.{test_type}"
services=rabbit,mysql,dstat,key,tempest
services+=,g-api,g-reg
services+=,n-api,n-cpu,n-cond,n-sch,n-crt
# placement services mandatory for nova from ocata
if [[ ! "stable/mitaka stable/newton" =~ $ZUUL_BRANCH ]]; then
services+=,placement-api,placement-client
fi
services+=,c-sch,c-api,c-vol,c-bak
services+=,q-svc,q-dhcp,q-meta,q-agt,q-l3
export PROJECTS="openstack/senlin $PROJECTS"
export DEVSTACK_LOCAL_CONFIG="enable_plugin senlin https://git.openstack.org/openstack/senlin"
if [ "{test_type}" == "api" ]||[ "{test_type}" == "functional" ]; then
export SENLIN_BACKEND="openstack_test"
else
export SENLIN_BACKEND="openstack"
# Enable heat for mitaka (no devstack plugin available)
if [[ "$ZUUL_BRANCH" == "stable/mitaka" ]]; then
services+=,h-api,h-api-cfn,h-api-cw,h-eng
fi
export PROJECTS="openstack/heat $PROJECTS"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin heat git://git.openstack.org/openstack/heat"
# Enable LBaaS V2 plugin
services+=,q-lbaasv2
export PROJECTS="openstack/neutron-lbaas $PROJECTS"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron-lbaas"
# Enable Zaqar
export PROJECTS="openstack/zaqar $PROJECTS"
export PROJECTS="openstack/python-zaqarclient $PROJECTS"
export PROJECTS="openstack/zaqar-ui $PROJECTS"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin zaqar git://git.openstack.org/openstack/zaqar"
fi
export OVERRIDE_ENABLED_SERVICES=$services
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
function pre_test_hook {{
cd /opt/stack/new/senlin/senlin/tests/tempest/
./pre_test_hook.sh
}}
export -f pre_test_hook
function post_test_hook {{
cd /opt/stack/new/senlin/senlin/tests/tempest/
./post_test_hook.sh
}}
export -f post_test_hook
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
publishers:
- test-results
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-senlinclient-dsvm-functional{suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 120
- timestamps
builders:
- link-logs
- net-info
- devstack-checkout
- shell: |
#!/bin/bash -xe
export PYTHONUNBUFFERED=true
export BRANCH_OVERRIDE={branch-override}
export KEEP_LOCALRC=1
export PROJECTS="openstack/senlin $PROJECTS"
export DEVSTACK_LOCAL_CONFIG="enable_plugin senlin https://git.openstack.org/openstack/senlin"
export DEVSTACK_PROJECT_FROM_GIT=python-senlinclient
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_service sl-api sl-eng"
export SENLIN_BACKEND="openstack_test"
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
function pre_test_hook {{
cd /opt/stack/new/python-senlinclient/senlinclient/tests/functional/
./pre_test_hook.sh
}}
export -f pre_test_hook
function post_test_hook {{
cd /opt/stack/new/python-senlinclient/senlinclient/tests/functional/
./post_test_hook.sh
}}
export -f post_test_hook
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
publishers:
- test-results
- devstack-logs
- console-log