# yamllint disable --- # Keep parent jobs in sync between branches to avoid issues e.g. with job scheduling. Zuul CI will search in master # branch first when collecting job variants during job freeze which can have unwanted side effects. For example, when # parent job *-base has been changed in stable/1.0.0 branch, Zuul could still use *-base variants from master branch # during job freeze on child jobs such as *-ussuri-ansible-2.11 etc. # # Do not share job definitions with the job.branches attribute across multiple branches. Do not define jobs which are # specific to other branches, except for parent jobs which are shared across branches. For example, to not add a job # which is specific for the stable/1.0.0 branch to the .zuul.yaml in master branch. In particular do not use the # job.branches directive on a job which will be copied to multiple branches. When you have multiple copies of a job with # the job.branches attribute, Zuul CI could pick any of the job definitions which might not be the one you expected. - job: name: ansible-collections-openstack-functional-devstack-base parent: openstacksdk-functional-devstack # Do not restrict branches in base jobs because else Zuul would not find a matching # parent job variant during job freeze when child jobs are on other branches. post-run: ci/playbooks/postlog.yaml description: | Run openstack collections functional tests against a devstack # Do not set job.override-checkout or job.required-projects.override-checkout in base job because # else Zuul will use this branch when matching variants for parent jobs during job freeze required-projects: - openstack/ansible-collections-openstack - openstack/designate # openstack/devstack is required through parent job openstacksdk-functional-devstack # openstack/os-client-config is required through parent job openstacksdk-functional-devstack # openstack/openstacksdk is required through parent job openstacksdk-functional-devstack irrelevant-files: &ignore_files - changelogs/.* - galaxy.* - COPYING - docs/.* - .*\.md - .*\.rst - tools/run-ansible-sanity.sh - tests/sanity/.* - .zuul.yaml vars: zuul_work_dir: src/opendev.org/openstack/ansible-collections-openstack tox_envlist: ansible_latest tox_install_siblings: true fetch_subunit: false devstack_plugins: designate: https://opendev.org/openstack/designate devstack_services: designate: true neutron-dns: true neutron-trunk: true neutron-segments: true zuul_copy_output: '{{ devstack_log_dir }}/test_output.log': 'logs' extensions_to_txt: log: true - job: name: ansible-collections-openstack-functional-devstack parent: ansible-collections-openstack-functional-devstack-base branches: master description: | Run openstack collections functional tests against a master devstack using master of openstacksdk with latest ansible release - job: name: ansible-collections-openstack-functional-devstack-magnum-base parent: ansible-collections-openstack-functional-devstack-base # Do not restrict branches in base jobs because else Zuul would not find a matching # parent job variant during job freeze when child jobs are on other branches. description: | Run openstack collections functional tests against a devstack with Magnum plugin enabled # Do not set job.override-checkout or job.required-projects.override-checkout in base job because # else Zuul will use this branch when matching variants for parent jobs during job freeze required-projects: - openstack/magnum - openstack/python-magnumclient files: - ^ci/roles/coe_cluster/.*$ - ^plugins/modules/coe_cluster.py - ^plugins/modules/coe_cluster_template.py timeout: 10800 vars: devstack_localrc: # NOTE: extend default glance limit from 1GB GLANCE_LIMIT_IMAGE_SIZE_TOTAL: 5000 devstack_plugins: magnum: https://opendev.org/openstack/magnum devstack_services: magnum-api: true magnum-cond: true # Disable swift and dependent c-bak service to support upload of .qcow2.xz image in the gate s-account: false s-container: false s-object: false s-proxy: false c-bak: false tox_extra_args: -vv --skip-missing-interpreters=false -- coe_cluster coe_cluster_template - job: name: ansible-collections-openstack-functional-devstack-manila-base parent: ansible-collections-openstack-functional-devstack-base # Do not restrict branches in base jobs because else Zuul would not find a matching # parent job variant during job freeze when child jobs are on other branches. description: | Run openstack collections functional tests against a devstack with Manila plugin enabled # Do not set job.override-checkout or job.required-projects.override-checkout in base job because # else Zuul will use this branch when matching variants for parent jobs during job freeze required-projects: - openstack/manila - openstack/python-manilaclient files: - ^ci/roles/share_type/.*$ - ^plugins/modules/share_type.py - ^plugins/modules/share_type_info.py timeout: 10800 vars: devstack_localrc: MANILA_ENABLED_BACKENDS: generic MANILA_OPTGROUP_generic_driver_handles_share_servers: true MANILA_OPTGROUP_generic_connect_share_server_to_tenant_network: true MANILA_USE_SERVICE_INSTANCE_PASSWORD: true devstack_plugins: manila: https://opendev.org/openstack/manila devstack_services: manila: true m-api: true m-sch: true m-shr: true m-dat: true tox_extra_args: -vv --skip-missing-interpreters=false -- share_type share_type_info - job: name: ansible-collections-openstack-functional-devstack-magnum parent: ansible-collections-openstack-functional-devstack-magnum-base branches: master description: | Run openstack collections functional tests against a master devstack with Magnum plugin enabled, using master of openstacksdk and latest ansible release. Run it only on coe_cluster{,_template} changes. - job: name: ansible-collections-openstack-functional-devstack-manila parent: ansible-collections-openstack-functional-devstack-manila-base branches: master description: | Run openstack collections functional tests against a master devstack with Manila plugin enabled, using master of openstacksdk and latest ansible release. Run it only on share_type{,_info} changes. - job: name: ansible-collections-openstack-functional-devstack-octavia-base parent: ansible-collections-openstack-functional-devstack-base # Do not restrict branches in base jobs because else Zuul would not find a matching # parent job variant during job freeze when child jobs are on other branches. description: | Run openstack collections functional tests against a devstack with Octavia plugin enabled # Do not set job.override-checkout or job.required-projects.override-checkout in base job because # else Zuul will use this branch when matching variants for parent jobs during job freeze required-projects: - openstack/octavia files: - ^ci/roles/loadbalancer/.*$ - ^plugins/modules/lb_health_monitor.py - ^plugins/modules/lb_listener.py - ^plugins/modules/lb_member.py - ^plugins/modules/lb_pool.py - ^plugins/modules/loadbalancer.py vars: configure_swap_size: 4096 devstack_local_conf: post-config: $OCTAVIA_CONF: controller_worker: amphora_driver: amphora_noop_driver devstack_plugins: designate: https://opendev.org/openstack/designate octavia: https://opendev.org/openstack/octavia devstack_services: designate: true octavia: true o-api: true o-cw: true o-hm: true o-hk: true neutron-dns: true tox_extra_args: -vv --skip-missing-interpreters=false -- loadbalancer tox_install_siblings: false - job: name: ansible-collections-openstack-functional-devstack-octavia parent: ansible-collections-openstack-functional-devstack-octavia-base branches: master description: | Run openstack collections functional tests against a master devstack with Octavia plugin enabled, using latest releases of openstacksdk and latest ansible release. Run it only on Load Balancer changes. - job: name: ansible-collections-openstack-functional-devstack-releases parent: ansible-collections-openstack-functional-devstack-base branches: master description: | Run openstack collections functional tests against a master devstack using latest releases of openstacksdk and latest ansible release vars: tox_constraints_file: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/constraints-openstacksdk-1.x.x.txt' tox_install_siblings: false - job: name: ansible-collections-openstack-functional-devstack-ansible-2.18 parent: ansible-collections-openstack-functional-devstack-base branches: master description: | Run openstack collections functional tests against a master devstack using master of openstacksdk and stable 2.16 branch of ansible required-projects: - name: github.com/ansible/ansible override-checkout: stable-2.18 vars: tox_envlist: ansible_2_18 - job: name: ansible-collections-openstack-functional-devstack-ansible-devel parent: ansible-collections-openstack-functional-devstack-base nodeset: openstack-single-node-jammy branches: master description: | Run openstack collections functional tests against a master devstack using master of openstacksdk and devel branch of ansible # non-voting because we can't prevent ansible devel from breaking us voting: false required-projects: - name: github.com/ansible/ansible override-checkout: devel # Linters - job: name: openstack-tox-linters-ansible parent: openstack-tox-linters description: | Run openstack collections linter tests using the devel branch of ansible required-projects: - name: github.com/ansible/ansible override-checkout: devel vars: # override tox_constraints_file from parent job tox_constraints_file: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/constraints-none.txt' tox_envlist: linters_latest tox_install_siblings: true - job: name: openstack-tox-linters-ansible-devel parent: openstack-tox-linters-ansible nodeset: ubuntu-jammy description: | Run openstack collections linter tests using the devel branch of ansible # non-voting because we can't prevent ansible devel from breaking us voting: false vars: python_version: '3.10' bindep_profile: test py310 - job: name: openstack-tox-linters-ansible-2.18 parent: openstack-tox-linters-ansible description: | Run openstack collections linter tests using the 2.18 branch of ansible required-projects: - name: github.com/ansible/ansible override-checkout: stable-2.18 vars: tox_envlist: linters_2_18 python_version: "3.12" bindep_profile: test py312 # Cross-checks with other projects - job: name: bifrost-collections-src parent: bifrost-integration-on-ubuntu-jammy required-projects: - openstack/ansible-collections-openstack - # always use master branch when collecting parent job variants, refer to git blame for rationale. name: openstack/bifrost override-checkout: master - # always use master branch when collecting parent job variants name: openstack/openstacksdk override-checkout: master - job: name: bifrost-keystone-collections-src parent: bifrost-integration-keystone-on-ubuntu-jammy required-projects: - openstack/ansible-collections-openstack - # always use master branch when collecting parent job variants, refer to git blame for rationale. name: openstack/bifrost override-checkout: master - # always use master branch when collecting parent job variants name: openstack/openstacksdk override-checkout: master - job: name: ansible-collections-openstack-release parent: openstack-tox-linters-ansible run: ci/publish/publish_collection.yml secrets: - ansible_galaxy_info - secret: name: ansible_galaxy_info data: url: https://galaxy.ansible.com token: !encrypted/pkcs1-oaep - K93hOZo1B5z248H04COB1N2HCkGbFPo2EUr+0W7qFzsrdvmbsAI86Hl9bUCfEENGrwvfV 0j9CE5iO0tyqal3r6ucMhGT44MgQWL3MBeRvK89yAJpSNMU7R7rEY/zbjZMoC9YElcHEv GEDZSA/0gQHCHpZVDlx4JMGwrnd+Nz9ha3c12BYeZS8rS/dQl7EmZ867OsozmNdG9UkkC 0vP/dkenUQNvoZOSWgZztRBlbAyI1nc5iEEw9vvpLh19HcY9+S2iAZkgSq4jOOO4wn7gE XAZPr0HRdwS2m4Hw0Pusrg7SdC3+2O0N/fvFGnvvKXHcSgQk3rPLn6HfKzOJoPWc4WlDX MA79jYloNBXjOaeXOoiwYzzshWK53F6Ci+3leq1cYuFyHSi2ds2mYXat7YndZSsmsk5um hj0+Ddy9Om1uYy3nhHyZLULE7UDUmduA9EPkvdyWlcW0yZL2kXcrDTHlSp4PaJg9iKVys 0aOOo9CNMwhyXAOGiFCYF/m7Efbnp50zUQhHN9+7LeVzXZuiH98C8kNvWfE0qrkrrgQ1n 78UMqGcGpdw4ZSlWrDTbrbd4v0bRnsJ+IAWISnT5OXaeJgGZwXRuBHtTXqbjoosBeX/8w YKb0lx7E5ZtSw7+Y6LNDGihGTmVg1nkZUWo85CxyF/RiWHuNvpkzzqXmdGS1bg= - project: check: jobs: - tox-pep8 - openstack-tox-linters-ansible-devel - openstack-tox-linters-ansible-2.18 - ansible-collections-openstack-functional-devstack - ansible-collections-openstack-functional-devstack-releases - ansible-collections-openstack-functional-devstack-ansible-2.18 - ansible-collections-openstack-functional-devstack-ansible-devel - ansible-collections-openstack-functional-devstack-magnum - ansible-collections-openstack-functional-devstack-manila - ansible-collections-openstack-functional-devstack-octavia - bifrost-collections-src: voting: false irrelevant-files: *ignore_files - bifrost-keystone-collections-src: voting: false irrelevant-files: *ignore_files gate: jobs: - tox-pep8 - openstack-tox-linters-ansible-2.18 - ansible-collections-openstack-functional-devstack-releases - ansible-collections-openstack-functional-devstack-magnum - ansible-collections-openstack-functional-devstack-manila - ansible-collections-openstack-functional-devstack-octavia periodic: jobs: - openstack-tox-linters-ansible-devel - openstack-tox-linters-ansible-2.18 - ansible-collections-openstack-functional-devstack - ansible-collections-openstack-functional-devstack-releases - ansible-collections-openstack-functional-devstack-ansible-2.18 - ansible-collections-openstack-functional-devstack-ansible-devel - bifrost-collections-src - bifrost-keystone-collections-src - ansible-collections-openstack-functional-devstack-magnum - ansible-collections-openstack-functional-devstack-manila - ansible-collections-openstack-functional-devstack-octavia tag: jobs: - ansible-collections-openstack-release