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:
parent
ec40f1301d
commit
82665998d3
93
.zuul.yaml
Normal file
93
.zuul.yaml
Normal 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
|
15
playbooks/devstack/functional/post.yaml
Normal file
15
playbooks/devstack/functional/post.yaml
Normal 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
|
120
playbooks/devstack/functional/run.yaml
Normal file
120
playbooks/devstack/functional/run.yaml
Normal 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 }}'
|
Loading…
x
Reference in New Issue
Block a user