From adb3e943b11415b085ebbbb7f23653aeb87d6ec5 Mon Sep 17 00:00:00 2001 From: Slawek Kaplonski Date: Tue, 9 Feb 2021 12:31:17 +0100 Subject: [PATCH] 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 --- zuul.d/base.yaml | 21 +++++- zuul.d/grenade.yaml | 45 +++++++++--- zuul.d/project.yaml | 47 +++---------- zuul.d/rally.yaml | 43 ++++++++++-- zuul.d/tempest-multinode.yaml | 47 ++++++++++--- zuul.d/tempest-singlenode.yaml | 123 +++++++++++++++++++++++++++------ zuul.d/tripleo.yaml | 43 ++++++++++-- 7 files changed, 281 insertions(+), 88 deletions(-) diff --git a/zuul.d/base.yaml b/zuul.d/base.yaml index fc7c7e04ebe..2358465d499 100644 --- a/zuul.d/base.yaml +++ b/zuul.d/base.yaml @@ -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 diff --git a/zuul.d/grenade.yaml b/zuul.d/grenade.yaml index 69f470c0fb2..13d2218e391 100644 --- a/zuul.d/grenade.yaml +++ b/zuul.d/grenade.yaml @@ -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: diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index b327ab1c40e..ed16b5ef6fe 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -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. diff --git a/zuul.d/rally.yaml b/zuul.d/rally.yaml index 5e2dc1cb5dc..82b746c3f57 100644 --- a/zuul.d/rally.yaml +++ b/zuul.d/rally.yaml @@ -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 diff --git a/zuul.d/tempest-multinode.yaml b/zuul.d/tempest-multinode.yaml index ec58abbf176..bac978e94ab 100644 --- a/zuul.d/tempest-multinode.yaml +++ b/zuul.d/tempest-multinode.yaml @@ -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 diff --git a/zuul.d/tempest-singlenode.yaml b/zuul.d/tempest-singlenode.yaml index 3457cf78a9b..0cab4d34909 100644 --- a/zuul.d/tempest-singlenode.yaml +++ b/zuul.d/tempest-singlenode.yaml @@ -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 diff --git a/zuul.d/tripleo.yaml b/zuul.d/tripleo.yaml index 6ab260311b2..e542ad6ca83 100644 --- a/zuul.d/tripleo.yaml +++ b/zuul.d/tripleo.yaml @@ -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/.*$