Limit execution of the neutron CI jobs on some irrelevant file

This patch tries to make execution of the CI jobs in the Neutron
queue to be more smart. There is no need to e.g. run
linuxbridge scenario jobs job when only changed files in patch
are in e.g. the openvswitch agent module, or vice versa.

Change-Id: Ie33514da28991fa5952a1d8c289402ecb9ffee49
This commit is contained in:
Slawek Kaplonski 2021-02-09 12:31:17 +01:00
parent fa5725f06c
commit adb3e943b1
7 changed files with 281 additions and 88 deletions

View File

@ -12,11 +12,16 @@
pre-run: playbooks/configure_functional_job.yaml
run: playbooks/run_functional_job.yaml
post-run: playbooks/post_functional_job.yaml
irrelevant-files:
irrelevant-files: &irrelevant-files
- ^.*\.rst$
- ^doc/.*$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^releasenotes/.*$
- ^setup.cfg$
- ^tools/.*$
- ^vagrant/.*$
- ^devstack/.*\.sample$
vars:
OVN_BRANCH: v20.06.1
# TODO(jlibosva): v2.13.1 is incompatible with kernel 4.15.0-118, sticking to commit hash until new v2.13 tag is created
@ -47,6 +52,20 @@
# /opt/stack/logs is default logs directory defined in neutron's
# tox.ini file
'{{ devstack_base_dir }}/logs/dsvm-fullstack-logs': logs
irrelevant-files:
- ^(test-|)requirements.txt$
- ^releasenotes/.*$
- ^doc/.*$
- ^setup.cfg$
- ^.*\.rst$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^tools/.*$
- ^neutron/agent/ovn/.*$
- ^neutron/agent/windows/.*$
- ^neutron/plugins/ml2/drivers/macvtap/.*$
- ^neutron/plugins/ml2/drivers/mech_sriov/.*$
- ^neutron/plugins/ml2/drivers/ovn/.*$
- job:
name: neutron-fullstack-with-uwsgi

View File

@ -4,18 +4,22 @@
required-projects:
- openstack/grenade
- openstack/neutron
irrelevant-files: &irrelevant-files
irrelevant-files: &openvswitch-irrelevant-files
- ^(test-|)requirements.txt$
- ^.*\.rst$
- ^releasenotes/.*$
- ^doc/.*$
- ^setup.cfg$
- ^.*\.rst$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^releasenotes/.*$
- ^setup.cfg$
- ^tools/.*$
- ^tox.ini$
- ^vagrant/.*$
- ^migration/.*$
- ^neutron/agent/ovn/.*$
- ^neutron/agent/windows/.*$
- ^neutron/plugins/ml2/drivers/linuxbridge/.*$
- ^neutron/plugins/ml2/drivers/macvtap/.*$
- ^neutron/plugins/ml2/drivers/mech_sriov/.*$
- ^neutron/plugins/ml2/drivers/ovn/.*$
vars:
devstack_services:
etcd: false
@ -48,7 +52,7 @@
required-projects:
- openstack/grenade
- openstack/neutron
irrelevant-files: *irrelevant-files
irrelevant-files: *openvswitch-irrelevant-files
vars:
devstack_services:
etcd: false
@ -130,7 +134,32 @@
name: neutron-grenade-ovn
parent: grenade-multinode
timeout: 9000
irrelevant-files: *irrelevant-files
irrelevant-files:
- ^(test-|)requirements.txt$
- ^releasenotes/.*$
- ^doc/.*$
- ^setup.cfg$
- ^.*\.rst$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^tools/.*$
- ^tox.ini$
- ^neutron/agent/dhcp/.*$
- ^neutron/agent/l2/.*$
- ^neutron/agent/l3/.*$
- ^neutron/agent/metadata/.*$
- ^neutron/agent/windows/.*$
- ^neutron/agent/dhcp_agent.py
- ^neutron/agent/l3_agent.py
- ^neutron/agent/metadata_agent.py
- ^neutron/agent/resource_cache.py
- ^neutron/agent/rpc.py
- ^neutron/agent/securitygroup_rpc.py
- ^neutron/plugins/ml2/drivers/linuxbridge/.*$
- ^neutron/plugins/ml2/drivers/openvswitch/.*$
- ^neutron/plugins/ml2/drivers/macvtap/.*$
- ^neutron/plugins/ml2/drivers/mech_sriov/.*$
- ^neutron/scheduler/.*$
roles:
- zuul: openstack/neutron-tempest-plugin
required-projects:

View File

@ -15,48 +15,23 @@
- release-notes-jobs-python3
check:
jobs:
- neutron-functional-with-uwsgi:
# We don't run the job on things like neutron docs-only changes
irrelevant-files: &irrelevant-files
- ^.*\.rst$
- ^doc/.*$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^releasenotes/.*$
- ^setup.cfg$
- ^tools/.*$
- ^tox.ini$
- ^vagrant/.*$
- ^migration/.*$
- ^devstack/.*\.sample$
- neutron-fullstack-with-uwsgi:
irrelevant-files: *irrelevant-files
- neutron-rally-task:
irrelevant-files: *irrelevant-files
- neutron-grenade-multinode:
irrelevant-files: *irrelevant-files
- neutron-grenade-dvr-multinode:
irrelevant-files: *irrelevant-files
- neutron-tempest-multinode-full-py3:
irrelevant-files: *irrelevant-files
- neutron-tempest-dvr-ha-multinode-full:
irrelevant-files: *irrelevant-files
- neutron-tempest-slow-py3:
irrelevant-files: *irrelevant-files
- neutron-tempest-ipv6-only:
irrelevant-files: *irrelevant-files
- neutron-ovn-tempest-ovs-release:
irrelevant-files: *irrelevant-files
- neutron-ovn-tempest-ovs-release-ipv6-only:
irrelevant-files: *irrelevant-files
- neutron-functional-with-uwsgi
- neutron-fullstack-with-uwsgi
- neutron-rally-task
- neutron-grenade-multinode
- neutron-grenade-dvr-multinode
- neutron-tempest-multinode-full-py3
- neutron-tempest-dvr-ha-multinode-full
- neutron-tempest-slow-py3
- neutron-tempest-ipv6-only
- neutron-ovn-tempest-ovs-release
- neutron-ovn-tempest-ovs-release-ipv6-only
# TODO(slaweq): add this job again to the check queue when it will be
# working fine on python 3
#- networking-midonet-tempest-aio-ml2-centos-7:
# voting: false
# irrelevant-files: *irrelevant-files
- neutron-ovn-rally-task:
voting: false
irrelevant-files: *irrelevant-files
# TripleO jobs that deploy OVN.
# Note we don't use a project-template here, so it's easier
# to disable voting on one specific job if things go wrong.

View File

@ -34,18 +34,22 @@
- openstack/rally
- openstack/rally-openstack
- openstack/osprofiler
irrelevant-files: &irrelevant-files
irrelevant-files:
- ^(test-|)requirements.txt$
- ^.*\.rst$
- ^releasenotes/.*$
- ^doc/.*$
- ^setup.cfg$
- ^.*\.rst$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^releasenotes/.*$
- ^setup.cfg$
- ^tools/.*$
- ^tox.ini$
- ^vagrant/.*$
- ^migration/.*$
- ^neutron/agent/ovn/.*$
- ^neutron/agent/windows/.*$
- ^neutron/plugins/ml2/drivers/linuxbridge/.*$
- ^neutron/plugins/ml2/drivers/macvtap/.*$
- ^neutron/plugins/ml2/drivers/mech_sriov/.*$
- ^neutron/plugins/ml2/drivers/ovn/.*$
- job:
name: neutron-ovn-rally-task
@ -55,7 +59,32 @@
- name: openstack/devstack-gate
- name: openstack/rally
- name: openstack/rally-openstack
irrelevant-files: *irrelevant-files
irrelevant-files:
- ^(test-|)requirements.txt$
- ^releasenotes/.*$
- ^doc/.*$
- ^setup.cfg$
- ^.*\.rst$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^tools/.*$
- ^tox.ini$
- ^neutron/agent/dhcp/.*$
- ^neutron/agent/l2/.*$
- ^neutron/agent/l3/.*$
- ^neutron/agent/metadata/.*$
- ^neutron/agent/windows/.*$
- ^neutron/agent/dhcp_agent.py
- ^neutron/agent/l3_agent.py
- ^neutron/agent/metadata_agent.py
- ^neutron/agent/resource_cache.py
- ^neutron/agent/rpc.py
- ^neutron/agent/securitygroup_rpc.py
- ^neutron/plugins/ml2/drivers/linuxbridge/.*$
- ^neutron/plugins/ml2/drivers/openvswitch/.*$
- ^neutron/plugins/ml2/drivers/macvtap/.*$
- ^neutron/plugins/ml2/drivers/mech_sriov/.*$
- ^neutron/scheduler/.*$
vars:
devstack_plugins:
neutron: https://opendev.org/openstack/neutron

View File

@ -9,18 +9,22 @@
- openstack/neutron
- openstack/tempest
pre-run: playbooks/dvr-multinode-scenario-pre-run.yaml
irrelevant-files: &irrelevant-files
irrelevant-files: &openvswitch-irrelevant-files
- ^(test-|)requirements.txt$
- ^.*\.rst$
- ^releasenotes/.*$
- ^doc/.*$
- ^setup.cfg$
- ^.*\.rst$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^releasenotes/.*$
- ^setup.cfg$
- ^tools/.*$
- ^tox.ini$
- ^vagrant/.*$
- ^migration/.*$
- ^neutron/agent/ovn/.*$
- ^neutron/agent/windows/.*$
- ^neutron/plugins/ml2/drivers/linuxbridge/.*$
- ^neutron/plugins/ml2/drivers/macvtap/.*$
- ^neutron/plugins/ml2/drivers/mech_sriov/.*$
- ^neutron/plugins/ml2/drivers/ovn/.*$
voting: false
vars:
tox_envlist: integrated-network
@ -117,7 +121,7 @@
name: neutron-tempest-multinode-full-py3
parent: tempest-multinode-full-py3
timeout: 10800
irrelevant-files: *irrelevant-files
irrelevant-files: *openvswitch-irrelevant-files
vars:
tox_envlist: integrated-network
devstack_plugins:
@ -152,7 +156,7 @@
name: neutron-tempest-slow-py3
parent: tempest-slow-py3
timeout: 10800
irrelevant-files: *irrelevant-files
irrelevant-files: *openvswitch-irrelevant-files
vars:
devstack_plugins:
neutron: https://opendev.org/openstack/neutron.git
@ -188,7 +192,32 @@
- openstack/neutron
- openstack/neutron-tempest-plugin
- openstack/tempest
irrelevant-files: *irrelevant-files
irrelevant-files:
- ^(test-|)requirements.txt$
- ^releasenotes/.*$
- ^doc/.*$
- ^setup.cfg$
- ^.*\.rst$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^tools/.*$
- ^tox.ini$
- ^neutron/agent/dhcp/.*$
- ^neutron/agent/l2/.*$
- ^neutron/agent/l3/.*$
- ^neutron/agent/metadata/.*$
- ^neutron/agent/windows/.*$
- ^neutron/agent/dhcp_agent.py
- ^neutron/agent/l3_agent.py
- ^neutron/agent/metadata_agent.py
- ^neutron/agent/resource_cache.py
- ^neutron/agent/rpc.py
- ^neutron/agent/securitygroup_rpc.py
- ^neutron/plugins/ml2/drivers/linuxbridge/.*$
- ^neutron/plugins/ml2/drivers/openvswitch/.*$
- ^neutron/plugins/ml2/drivers/macvtap/.*$
- ^neutron/plugins/ml2/drivers/mech_sriov/.*$
- ^neutron/scheduler/.*$
roles:
- zuul: zuul/zuul-jobs
- zuul: openstack/neutron-tempest-plugin

View File

@ -49,17 +49,7 @@
vars:
devstack_localrc:
Q_AGENT: openvswitch
- job:
name: neutron-tempest-dvr
parent: neutron-ovs-base
vars:
devstack_localrc:
Q_DVR_MODE: dvr_snat
devstack_services:
br-ex-tcpdump: true
br-int-flows: true
irrelevant-files: &irrelevant-files
irrelevant-files: &openvswitch-irrelevant-files
- ^(test-|)requirements.txt$
- ^.*\.rst$
- ^doc/.*$
@ -70,7 +60,22 @@
- ^tools/.*$
- ^tox.ini$
- ^vagrant/.*$
- ^migration/.*$
- ^neutron/agent/ovn/.*$
- ^neutron/agent/windows/.*$
- ^neutron/plugins/ml2/drivers/linuxbridge/.*$
- ^neutron/plugins/ml2/drivers/macvtap/.*$
- ^neutron/plugins/ml2/drivers/mech_sriov/.*$
- ^neutron/plugins/ml2/drivers/ovn/.*$
- job:
name: neutron-tempest-dvr
parent: neutron-ovs-base
vars:
devstack_localrc:
Q_DVR_MODE: dvr_snat
devstack_services:
br-ex-tcpdump: true
br-int-flows: true
- job:
name: neutron-tempest-linuxbridge
@ -78,7 +83,24 @@
vars:
devstack_localrc:
Q_AGENT: linuxbridge
irrelevant-files: *irrelevant-files
irrelevant-files:
- ^(test-|)requirements.txt$
- ^.*\.rst$
- ^doc/.*$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^releasenotes/.*$
- ^setup.cfg$
- ^tools/.*$
- ^tox.ini$
- ^vagrant/.*$
- ^neutron/agent/linux/openvswitch_firewall/.*$
- ^neutron/agent/ovn/.*$
- ^neutron/agent/windows/.*$
- ^neutron/plugins/ml2/drivers/openvswitch/.*$
- ^neutron/plugins/ml2/drivers/macvtap/.*$
- ^neutron/plugins/ml2/drivers/mech_sriov/.*$
- ^neutron/plugins/ml2/drivers/ovn/.*$
- job:
name: neutron-tempest-iptables_hybrid
@ -130,7 +152,6 @@
agent_availability_zone: nova
image_is_advanced: true
available_type_drivers: flat,geneve,vlan,gre,local,vxlan
irrelevant-files: *irrelevant-files
- job:
name: neutron-tempest-postgres-full
@ -159,7 +180,19 @@
s-container: false
s-object: false
s-proxy: false
irrelevant-files: *irrelevant-files
irrelevant-files: &tempest-db-irrelevant-files
- ^(test-|)requirements.txt$
- ^.*\.rst$
- ^doc/.*$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^releasenotes/.*$
- ^setup.cfg$
- ^tools/.*$
- ^tox.ini$
- ^vagrant/.*$
- ^neutron/agent/.*$
- ^neutron/plugins/ml2/drivers/.*$
- job:
name: neutron-tempest-mariadb-full
@ -191,7 +224,7 @@
# NOTE(ralonsoh): once MariaDB default version in Ubuntu is bumped to
# >10.1, this workaround can be removed (bug 1855912)
pre-run: playbooks/add_mariadb_repo.yaml
irrelevant-files: *irrelevant-files
irrelevant-files: *tempest-db-irrelevant-files
- job:
name: neutron-tempest-with-os-ken-master
@ -219,6 +252,21 @@
s-container: false
s-object: false
s-proxy: false
irrelevant-files:
- ^(test-|)requirements.txt$
- ^.*\.rst$
- ^doc/.*$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^releasenotes/.*$
- ^setup.cfg$
- ^tools/.*$
- ^tox.ini$
- ^vagrant/.*$
- ^neutron/agent/windows/.*$
- ^neutron/plugins/ml2/drivers/linuxbridge/.*$
- ^neutron/plugins/ml2/drivers/macvtap/.*$
- ^neutron/plugins/ml2/drivers/mech_sriov/.*$
- job:
name: neutron-tempest-with-neutron-lib-master
@ -271,7 +319,17 @@
s-container: false
s-object: false
s-proxy: false
irrelevant-files: *irrelevant-files
irrelevant-files: &irrelevant-files
- ^(test-|)requirements.txt$
- ^.*\.rst$
- ^doc/.*$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^releasenotes/.*$
- ^setup.cfg$
- ^tools/.*$
- ^tox.ini$
- ^vagrant/.*$
- job:
name: neutron-tempest-with-uwsgi-loki
@ -291,7 +349,6 @@
- openstack/devstack-gate
- openstack/neutron
- openstack/tempest
irrelevant-files: *irrelevant-files
vars: &ovn-base-vars
tempest_concurrency: 4
devstack_local_conf:
@ -366,12 +423,37 @@
c-sch: false
c-vol: false
cinder: false
irrelevant-files: &ovn-irrelevant-files
- ^(test-|)requirements.txt$
- ^releasenotes/.*$
- ^doc/.*$
- ^setup.cfg$
- ^.*\.rst$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^tools/.*$
- ^tox.ini$
- ^neutron/agent/dhcp/.*$
- ^neutron/agent/l2/.*$
- ^neutron/agent/l3/.*$
- ^neutron/agent/metadata/.*$
- ^neutron/agent/windows/.*$
- ^neutron/agent/dhcp_agent.py
- ^neutron/agent/l3_agent.py
- ^neutron/agent/metadata_agent.py
- ^neutron/agent/resource_cache.py
- ^neutron/agent/rpc.py
- ^neutron/agent/securitygroup_rpc.py
- ^neutron/plugins/ml2/drivers/linuxbridge/.*$
- ^neutron/plugins/ml2/drivers/openvswitch/.*$
- ^neutron/plugins/ml2/drivers/macvtap/.*$
- ^neutron/plugins/ml2/drivers/mech_sriov/.*$
- ^neutron/scheduler/.*$
- job:
name: neutron-tempest-ipv6-only
parent: tempest-ipv6-only
timeout: 10800
irrelevant-files: *irrelevant-files
vars:
tox_envlist: integrated-network
devstack_plugins:
@ -390,6 +472,7 @@
s-container: false
s-object: false
s-proxy: false
irrelevant-files: *openvswitch-irrelevant-files
- job:
name: neutron-ovn-tempest-ovs-master-fedora
@ -421,7 +504,7 @@
description: Base job for devstack/tempest to test Neutron with ovn driver in an IPv6-only deployment
parent: devstack-tempest-ipv6
timeout: 10800
irrelevant-files: *irrelevant-files
irrelevant-files: *ovn-irrelevant-files
required-projects: *ovn-base-required-projects
vars: *ovn-base-vars

View File

@ -16,18 +16,22 @@
tempest_test_whitelist:
- 'tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_network_basic_ops'
use_os_tempest: true
irrelevant-files: &irrelevant-files
irrelevant-files:
- ^(test-|)requirements.txt$
- ^.*\.rst$
- ^releasenotes/.*$
- ^doc/.*$
- ^setup.cfg$
- ^.*\.rst$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^releasenotes/.*$
- ^setup.cfg$
- ^tools/.*$
- ^tox.ini$
- ^vagrant/.*$
- ^migration/.*$
- ^neutron/agent/ovn/.*$
- ^neutron/agent/windows/.*$
- ^neutron/plugins/ml2/drivers/linuxbridge/.*$
- ^neutron/plugins/ml2/drivers/macvtap/.*$
- ^neutron/plugins/ml2/drivers/mech_sriov/.*$
- ^neutron/plugins/ml2/drivers/ovn/.*$
- job:
name: neutron-ovn-tripleo-ci-centos-8-containers-multinode
@ -35,4 +39,29 @@
vars:
nodes: 1ctlr
featureset: '010'
irrelevant-files: *irrelevant-files
irrelevant-files:
- ^(test-|)requirements.txt$
- ^releasenotes/.*$
- ^doc/.*$
- ^setup.cfg$
- ^.*\.rst$
- ^neutron/locale/.*$
- ^neutron/tests/unit/.*$
- ^tools/.*$
- ^tox.ini$
- ^neutron/agent/dhcp/.*$
- ^neutron/agent/l2/.*$
- ^neutron/agent/l3/.*$
- ^neutron/agent/metadata/.*$
- ^neutron/agent/windows/.*$
- ^neutron/agent/dhcp_agent.py
- ^neutron/agent/l3_agent.py
- ^neutron/agent/metadata_agent.py
- ^neutron/agent/resource_cache.py
- ^neutron/agent/rpc.py
- ^neutron/agent/securitygroup_rpc.py
- ^neutron/plugins/ml2/drivers/linuxbridge/.*$
- ^neutron/plugins/ml2/drivers/openvswitch/.*$
- ^neutron/plugins/ml2/drivers/macvtap/.*$
- ^neutron/plugins/ml2/drivers/mech_sriov/.*$
- ^neutron/scheduler/.*$