Migrate functional jobs to Zuul v3

Migrate all functional jobs and gate to zuul v3.
We will have to migrate all other legacy jobs too later.
Migrating guideline:
https://docs.openstack.org/infra/manual/zuulv3.html

Change-Id: I6757ba558d2a89a6b1d1ab4694106f0b84b26d4f
This commit is contained in:
ricolin 2017-10-03 15:06:33 +08:00 committed by rabi
parent ec40f1301d
commit 82665998d3
3 changed files with 228 additions and 0 deletions

93
.zuul.yaml Normal file
View File

@ -0,0 +1,93 @@
- job:
name: heat-functional-devstack-base
parent: legacy-dsvm-base
run: playbooks/devstack/functional/run
post-run: playbooks/devstack/functional/post
timeout: 7800
required-projects:
- openstack-infra/devstack-gate
- openstack/aodh
- openstack/barbican
- openstack/barbican-tempest-plugin
- openstack/ceilometer
- openstack/devstack-plugin-amqp1
- openstack/heat
- openstack/neutron
- openstack/neutron-lbaas
- openstack/oslo.messaging
- openstack/python-barbicanclient
- openstack/python-heatclient
- openstack/python-zaqarclient
- openstack/zaqar
irrelevant-files:
- ^.*\.rst$
- ^api-ref/.*$
- ^doc/.*$
- ^heat/locale/.*$
- ^heat/tests/.*$
- ^releasenotes/.*$
vars:
disable_convergence: 'false'
sql: mysql
use_amqp1: 0
use_apache: 1
use_python3: 0
use_identity_v3_only: 0
branch_override: default
- job:
name: heat-functional-orig-mysql-lbaasv2
parent: heat-functional-devstack-base
vars:
disable_convergence: 'true'
- job:
name: heat-functional-convg-mysql-lbaasv2
parent: heat-functional-devstack-base
- job:
name: heat-functional-convg-mysql-lbaasv2-amqp1
parent: heat-functional-devstack-base
voting: false
branches: master
vars:
use_amqp1: 1
- job:
name: heat-functional-convg-mysql-lbaasv2-non-apache
parent: heat-functional-devstack-base
branches: ^(?!stable/newton).*$
vars:
use_apache: 0
- job:
name: heat-functional-convg-mysql-lbaasv2-py35
parent: heat-functional-devstack-base
branches: ^(?!stable/(newton|ocata)).*$
vars:
use_python3: 1
- job:
name: heat-functional-convg-mysql-lbaasv2-identity-v3-only
parent: heat-functional-devstack-base
voting: false
branches: master
vars:
use_identity_v3_only: 1
- project:
name: openstack/heat
check:
jobs:
- heat-functional-orig-mysql-lbaasv2
- heat-functional-convg-mysql-lbaasv2
- heat-functional-convg-mysql-lbaasv2-amqp1
- heat-functional-convg-mysql-lbaasv2-non-apache
- heat-functional-convg-mysql-lbaasv2-py35
- heat-functional-convg-mysql-lbaasv2-identity-v3-only
gate:
jobs:
- heat-functional-orig-mysql-lbaasv2
- heat-functional-convg-mysql-lbaasv2
- heat-functional-convg-mysql-lbaasv2-non-apache
- heat-functional-convg-mysql-lbaasv2-py35

View File

@ -0,0 +1,15 @@
- hosts: primary
tasks:
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
synchronize:
src: '{{ ansible_user_dir }}/workspace/'
dest: '{{ zuul.executor.log_root }}'
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- --include=/logs/**
- --include=*/
- --exclude=*
- --prune-empty-dirs

View File

@ -0,0 +1,120 @@
- hosts: all
name: Job for functional tests
tasks:
- name: Ensure legacy workspace directory
file:
path: '{{ ansible_user_dir }}/workspace'
state: directory
- shell:
cmd: |
set -e
set -x
cat > clonemap.yaml << EOF
clonemap:
- name: openstack-infra/devstack-gate
dest: devstack-gate
EOF
/usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
git://git.openstack.org \
openstack-infra/devstack-gate
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
- shell:
cmd: |
set -e
set -x
export PYTHONUNBUFFERED=true
services=rabbit,tempest,mysql,dstat,key
services+=,n-api,n-api-meta,n-cpu,n-cond,n-sch,n-crt
# TODO(ricolin) replace the usage of ZUUL_BRANCH
# placement services mandatory for nova from ocata
if [[ "stable/newton" != $ZUUL_BRANCH ]]; then
services+=,placement-api,placement-client
fi
services+=,g-api,g-reg
services+=,c-sch,c-api,c-vol,c-bak
services+=,q-svc,q-dhcp,q-meta,q-agt,q-l3
if [ "{{ use_python3 }}" -eq 1 ] ; then
export DEVSTACK_GATE_USE_PYTHON3=True
# Swift does not work so skip s-* for python3x for now
else
export DEVSTACK_GATE_USE_PYTHON3=False
services+=,s-proxy,s-object,s-container,s-account
fi
# TODO(ricolin) replace the usage of ZUUL_BRANCH
if [[ ! "stable/newton stable/ocata" =~ $ZUUL_BRANCH ]]; then
services+=,q-trunk
fi
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 DEVSTACK_PROJECT_FROM_GIT=python-heatclient
export KEEP_LOCALRC=1
export PROJECTS="openstack/ceilometer $PROJECTS"
export PROJECTS="openstack/aodh $PROJECTS"
export PROJECTS="openstack/zaqar $PROJECTS"
export PROJECTS="openstack/python-zaqarclient $PROJECTS"
export PROJECTS="openstack/neutron $PROJECTS"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ceilometer git://git.openstack.org/openstack/ceilometer"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin aodh git://git.openstack.org/openstack/aodh"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin zaqar git://git.openstack.org/openstack/zaqar"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin neutron git://git.openstack.org/openstack/neutron"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin heat git://git.openstack.org/openstack/heat"
# Enable LBaaS V2 plugin
export PROJECTS="openstack/neutron-lbaas $PROJECTS"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron-lbaas"
# enabling lbaas plugin does not enable the lbaasv2 service, explicitly enable it
services+=,q-lbaasv2
export PROJECTS="openstack/barbican $PROJECTS"
export PROJECTS="openstack/python-barbicanclient $PROJECTS"
export PROJECTS="openstack/barbican-tempest-plugin $PROJECTS"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin barbican https://git.openstack.org/openstack/barbican"
# the lbaas v2 driver choice is in the gate pre test hook
export OVERRIDE_ENABLED_SERVICES=$services
if [ "{{ branch_override }}" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
if [ "{{ use_identity_v3_only }}" -eq 1 ] ; then
export DEVSTACK_LOCAL_CONFIG+=$'\n'"ENABLE_IDENTITY_V2=False"
fi
if [ "{{ use_apache }}" -eq 0 ] ; then
export DEVSTACK_LOCAL_CONFIG+=$'\n'"HEAT_USE_MOD_WSGI=False"
fi
if [ "{{ use_amqp1 }}" -eq 1 ] ; then
export PROJECTS="openstack/devstack-plugin-amqp1 $PROJECTS"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"export AMQP1_SERVICE=qpid-hybrid"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin devstack-plugin-amqp1 git://git.openstack.org/openstack/devstack-plugin-amqp1"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"export CELLSV2_SETUP=singleconductor"
export DEVSTACK_PROJECT_FROM_GIT="oslo.messaging,$DEVSTACK_PROJECT_FROM_GIT"
fi
export DISABLE_CONVERGENCE="{{ disable_convergence }}"
function pre_test_hook {
cd /opt/stack/new/heat/heat_integrationtests
source ./pre_test_hook.sh
}
export -f pre_test_hook
function post_test_hook {
cd /opt/stack/new/heat/heat_integrationtests
source ./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
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'