# 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/.* - contrib/.* - .zuul.yaml vars: zuul_work_dir: src/opendev.org/openstack/ansible-collections-openstack tox_envlist: ansible tox_install_siblings: true fetch_subunit: false devstack_plugins: designate: https://opendev.org/openstack/designate devstack_services: designate: true neutron-dns: true zuul_copy_output: '{{ devstack_log_dir }}/test_output.log': 'logs' extensions_to_txt: log: true - 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 pre-run: ci/playbooks/get_amphora_tarball.yaml # 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: 8192 tox_install_siblings: false devstack_plugins: designate: https://opendev.org/openstack/designate octavia: https://opendev.org/openstack/octavia devstack_services: designate: true neutron-dns: true octavia: true o-api: true o-cw: true o-hk: true o-hm: true devstack_localrc: OCTAVIA_AMP_IMAGE_FILE: "/tmp/test-only-amphora-x64-haproxy-ubuntu-bionic.qcow2" OCTAVIA_AMP_IMAGE_SIZE: 3 OCTAVIA_AMP_IMAGE_NAME: "test-only-amphora-x64-haproxy-ubuntu-bionic" - job: name: ansible-collections-openstack-functional-devstack-octavia parent: ansible-collections-openstack-functional-devstack-octavia-base branches: stable/1.0.0 description: | Run openstack collections functional tests against a master devstack with Octavia plugin enabled, using 0.*.* releases of openstacksdk and latest ansible release. Run it only on Load Balancer changes. required-projects: - # Choose parent devstack job from master branch instead of non-existing stable/1.0.0 branch name: openstack/devstack override-checkout: master - # Choose parent devstack job from master branch instead of non-existing stable/1.0.0 branch name: openstack/openstacksdk override-checkout: master vars: tox_constraints_file: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/constraints-openstacksdk-0.x.x.txt' - job: name: ansible-collections-openstack-functional-devstack-releases parent: ansible-collections-openstack-functional-devstack-base branches: stable/1.0.0 description: | Run openstack collections functional tests against a master devstack using 0.*.* releases of openstacksdk and latest ansible release required-projects: - name: github.com/ansible/ansible override-checkout: stable-2.9 - # Choose parent devstack job from master branch instead of non-existing stable/1.0.0 branch name: openstack/devstack override-checkout: master - # Choose parent devstack job from master branch instead of non-existing stable/1.0.0 branch name: openstack/openstacksdk override-checkout: master vars: tox_constraints_file: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/constraints-openstacksdk-0.x.x.txt' tox_install_siblings: false # Job with Ansible 2.9 for checking backward compatibility - job: name: ansible-collections-openstack-functional-devstack-ansible-2.9 parent: ansible-collections-openstack-functional-devstack-base branches: stable/1.0.0 description: | Run openstack collections functional tests against a master devstack using 0.*.* releases of openstacksdk and stable 2.9 branch of ansible required-projects: - name: github.com/ansible/ansible override-checkout: stable-2.9 - # Choose parent devstack job from stable/yoga branch instead of non-existing stable/1.0.0 branch name: openstack/devstack override-checkout: stable/yoga - name: openstack/openstacksdk # Yoga has the latest SDK release of the 0.*.* series atm override-checkout: stable/yoga vars: tox_envlist: ansible-2.9 - job: name: ansible-collections-openstack-functional-devstack-ansible-2.11 parent: ansible-collections-openstack-functional-devstack-base branches: stable/1.0.0 description: | Run openstack collections functional tests against a master devstack using 0.*.* releases of openstacksdk and stable 2.12 branch of ansible required-projects: - name: github.com/ansible/ansible override-checkout: stable-2.11 - # Choose parent devstack job from stable/yoga branch instead of non-existing stable/1.0.0 branch name: openstack/devstack override-checkout: stable/yoga - name: openstack/openstacksdk # Yoga has the latest SDK release of the 0.*.* series atm override-checkout: stable/yoga vars: tox_envlist: ansible-2.11 - job: name: ansible-collections-openstack-functional-devstack-ansible-2.12 parent: ansible-collections-openstack-functional-devstack-base branches: stable/1.0.0 description: | Run openstack collections functional tests against a master devstack using 0.*.* releases of openstacksdk and stable 2.12 branch of ansible required-projects: - name: github.com/ansible/ansible override-checkout: stable-2.12 - # Choose parent devstack job from stable/yoga branch instead of non-existing stable/1.0.0 branch name: openstack/devstack override-checkout: stable/yoga - name: openstack/openstacksdk # Yoga has the latest SDK release of the 0.*.* series atm override-checkout: stable/yoga vars: tox_envlist: ansible-2.12 # Stable branches tests - job: name: ansible-collections-openstack-functional-devstack-xena-ansible-2.12 # Do not inherit from any parent job which does not run for branch stable/1.0.0 because Zuul would dismiss this job # when collecting parent job variants. For example, when job.branches is set to master in a parent job, then Zuul # will not match that job when it collects job variants. # # Do not inherit from any parent job which sets job.required-projects.override-checkout on openstack/devstack # because Zuul would use that git ref instead of stable branch defined below to checkout projects of parent devstack # jobs when collecting variants for parent jobs. parent: ansible-collections-openstack-functional-devstack-base description: | Run openstack collections functional tests against a xena devstack using xena branch of openstacksdk and stable 2.12 branch of ansible branches: stable/1.0.0 override-checkout: stable/xena # job.override-checkout will not override job.required-projects.override-checkout in parent jobs required-projects: - name: github.com/ansible/ansible override-checkout: stable-2.12 - # Choose parent devstack job from stable/1.0.0 branch instead of non-existing stable/xena branch name: openstack/ansible-collections-openstack override-checkout: stable/1.0.0 - # Choose parent devstack job from stable/xena branch name: openstack/devstack override-checkout: stable/xena - name: openstack/designate override-checkout: stable/xena - name: openstack/openstacksdk override-checkout: stable/xena vars: tox_envlist: ansible-2.12 - job: name: ansible-collections-openstack-functional-devstack-wallaby-ansible-2.12 # Do not inherit from any parent job which does not run for branch stable/1.0.0 because Zuul would dismiss this job # when collecting parent job variants. For example, when job.branches is set to master in a parent job, then Zuul # will not match that job when it collects job variants. # # Do not inherit from any parent job which sets job.required-projects.override-checkout on openstack/devstack # because Zuul would use that git ref instead of stable branch defined below to checkout projects of parent devstack # jobs when collecting variants for parent jobs. parent: ansible-collections-openstack-functional-devstack-base description: | Run openstack collections functional tests against a wallaby devstack using wallaby branch of openstacksdk and stable 2.12 branch of ansible branches: stable/1.0.0 override-checkout: stable/wallaby # job.override-checkout will not override job.required-projects.override-checkout in parent jobs required-projects: - name: github.com/ansible/ansible override-checkout: stable-2.12 - # Choose parent devstack job from stable/1.0.0 branch instead of non-existing stable/wallaby branch name: openstack/ansible-collections-openstack override-checkout: stable/1.0.0 - # Choose parent devstack job from stable/wallaby branch name: openstack/devstack override-checkout: stable/wallaby - name: openstack/designate override-checkout: stable/wallaby - name: openstack/openstacksdk override-checkout: stable/wallaby vars: tox_envlist: ansible-2.12 - job: name: ansible-collections-openstack-functional-devstack-victoria-ansible-2.12 # Do not inherit from any parent job which does not run for branch stable/1.0.0 because Zuul would dismiss this job # when collecting parent job variants. For example, when job.branches is set to master in a parent job, then Zuul # will not match that job when it collects job variants. # # Do not inherit from any parent job which sets job.required-projects.override-checkout on openstack/devstack # because Zuul would use that git ref instead of stable branch defined below to checkout projects of parent devstack # jobs when collecting variants for parent jobs. parent: ansible-collections-openstack-functional-devstack-base description: | Run openstack collections functional tests against a victoria devstack using victoria branch of openstacksdk and stable 2.12 branch of ansible branches: stable/1.0.0 override-checkout: stable/victoria # job.override-checkout will not override job.required-projects.override-checkout in parent jobs required-projects: - name: github.com/ansible/ansible override-checkout: stable-2.12 - # Choose parent devstack job from stable/1.0.0 branch instead of non-existing stable/victoria branch name: openstack/ansible-collections-openstack override-checkout: stable/1.0.0 - # Choose parent devstack job from stable/victoria branch name: openstack/devstack override-checkout: stable/victoria - name: openstack/designate override-checkout: stable/victoria - name: openstack/openstacksdk override-checkout: stable/victoria vars: tox_envlist: ansible-2.12 - job: name: ansible-collections-openstack-functional-devstack-ussuri-ansible-2.11 # Do not inherit from any parent job which does not run for branch stable/1.0.0 because Zuul would dismiss this job # when collecting parent job variants. For example, when job.branches is set to master in a parent job, then Zuul # will not match that job when it collects job variants. # # Do not inherit from any parent job which sets job.required-projects.override-checkout on openstack/devstack # because Zuul would use that git ref instead of stable branch defined below to checkout projects of parent devstack # jobs when collecting variants for parent jobs. parent: ansible-collections-openstack-functional-devstack-base description: | Run openstack collections functional tests against a ussuri devstack using ussuri branch of openstacksdk and stable 2.11 branch of ansible branches: stable/1.0.0 override-checkout: stable/ussuri # job.override-checkout will not override job.required-projects.override-checkout in parent jobs required-projects: - name: github.com/ansible/ansible override-checkout: stable-2.11 - # Choose parent devstack job from stable/1.0.0 branch instead of non-existing stable/ussuri branch name: openstack/ansible-collections-openstack override-checkout: stable/1.0.0 - # Choose parent devstack job from stable/ussuri branch name: openstack/devstack override-checkout: stable/ussuri - name: openstack/designate override-checkout: stable/ussuri - name: openstack/openstacksdk override-checkout: stable/ussuri vars: tox_envlist: ansible-2.11 - job: name: ansible-collections-openstack-functional-devstack-train-ansible-2.11 # Do not inherit from any parent job which does not run for branch stable/1.0.0 because Zuul would dismiss this job # when collecting parent job variants. For example, when job.branches is set to master in a parent job, then Zuul # will not match that job when it collects job variants. # # Do not inherit from any parent job which sets job.required-projects.override-checkout on openstack/devstack # because Zuul would use that git ref instead of stable branch defined below to checkout projects of parent devstack # jobs when collecting variants for parent jobs. parent: ansible-collections-openstack-functional-devstack-base description: | Run openstack collections functional tests against a train devstack using train branch of openstacksdk and stable 2.11 branch of ansible branches: stable/1.0.0 override-checkout: stable/train # job.override-checkout will not override job.required-projects.override-checkout in parent jobs required-projects: - name: github.com/ansible/ansible override-checkout: stable-2.11 - # Choose parent devstack job from stable/1.0.0 branch instead of non-existing stable/train branch name: openstack/ansible-collections-openstack override-checkout: stable/1.0.0 - # Choose parent devstack job from stable/train branch name: openstack/devstack override-checkout: stable/train - name: openstack/designate override-checkout: train-eol - name: openstack/openstacksdk override-checkout: stable/train vars: tox_envlist: ansible-2.11 # Linters - job: name: openstack-tox-linters-ansible parent: openstack-tox-linters nodeset: ubuntu-focal 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 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.12 parent: openstack-tox-linters-ansible description: | Run openstack collections linter tests using the 2.12 branch of ansible required-projects: - name: github.com/ansible/ansible override-checkout: stable-2.12 vars: tox_envlist: linters-2.12 python_version: 3.8 bindep_profile: test py38 # Cross-checks with other projects - job: name: bifrost-collections-src parent: bifrost-integration-tinyipa-ubuntu-focal override-checkout: stable/yoga # job.override-checkout will not override job.required-projects.override-checkout in parent jobs required-projects: - openstack/ansible-collections-openstack - # always use existing branch when collecting parent job variants, refer to git blame for rationale. name: openstack/bifrost # Yoga has the latest SDK release of the 0.*.* series atm override-checkout: stable/yoga - job: name: bifrost-keystone-collections-src parent: bifrost-integration-tinyipa-keystone-ubuntu-focal override-checkout: stable/yoga # job.override-checkout will not override job.required-projects.override-checkout in parent jobs required-projects: - openstack/ansible-collections-openstack - # always use existing branch when collecting parent job variants, refer to git blame for rationale. name: openstack/bifrost # Yoga has the latest SDK release of the 0.*.* series atm override-checkout: stable/yoga # TripleO jobs - job: name: tripleo-ci-centos-8-standalone-osa-pre-zed parent: tripleo-ci-centos-8-standalone-build # 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. vars: &tripleo_vars consumer_job: false # Define branch_override in child jobs, e.g. branch_override: stable/yoga force_non_periodic: true required-projects: &tripleo_required_projects - # Required for TripleO Quickstart to install current patchset of the collection # Ref.: https://opendev.org/openstack/tripleo-quickstart/src/commit/b48d869e14de40444d69a107a0b718b5f721e912/quickstart.sh#L123 openstack/ansible-collections-openstack - # always use master branch when collecting parent job variants, refer to git blame for rationale. name: openstack/tripleo-ci override-checkout: master irrelevant-files: &tripleo_irrelevant_files - .*molecule.* - ^.*\.md$ - ^.*\.rst$ - ^changelogs/.*$ - ^contrib/.*$ - ^docs/.*$ - ^meta/.*$ - ^requirements.*$ - ^setup.*$ - ^tests/.*$ - ^tools/.*$ - tox.ini # Run only on files used in TripleO files: &tripleo_files - ^.zuul.yaml$ - ^plugins/module_utils/openstack.*$ - ^plugins/modules/catalog_service.*$ - ^plugins/modules/compute_flavor.*$ - ^plugins/modules/endpoint.*$ - ^plugins/modules/identity_domain.*$ - ^plugins/modules/identity_domain_info.*$ - ^plugins/modules/identity_role.*$ - ^plugins/modules/identity_user.*$ - ^plugins/modules/image.*$ - ^plugins/modules/keypair.*$ - ^plugins/modules/network.*$ - ^plugins/modules/project.*$ - ^plugins/modules/role_assignment.*$ - ^plugins/modules/router.*$ - ^plugins/modules/stack.*$ - ^plugins/modules/subnet.*$ - job: name: tripleo-ci-centos-9-standalone-osa-pre-zed parent: tripleo-ci-centos-9-standalone-build # 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. vars: *tripleo_vars required-projects: *tripleo_required_projects irrelevant-files: *tripleo_irrelevant_files files: *tripleo_files - job: name: tripleo-ci-centos-8-standalone-osa-train parent: tripleo-ci-centos-8-standalone-osa-pre-zed branches: stable/1.0.0 override-checkout: stable/train vars: branch_override: stable/train - job: name: tripleo-ci-centos-8-standalone-osa-wallaby parent: tripleo-ci-centos-8-standalone-osa-pre-zed branches: stable/1.0.0 override-checkout: stable/wallaby vars: branch_override: stable/wallaby - job: name: tripleo-ci-centos-9-standalone-osa-wallaby parent: tripleo-ci-centos-9-standalone-osa-pre-zed branches: stable/1.0.0 override-checkout: stable/wallaby vars: branch_override: stable/wallaby - job: name: ansible-collections-openstack-release parent: base 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 - lZFzfoCbuwqV1k6qRfl/VS7E+knUW7+zpg7BptrenK4n0g7UY0HtdVkYq0pV0Tj/LbhzG jHD0mehcV1iS6B7ORKg4criJkdDfEx09BD8z8yv0EleiIMmhlrCoMcY593OZMBtVbGi0D CwQtNO98QIsfZogChfLfvRNiBmUV98mEb/p6p3EtGx8J7qcAsqfWxc/CzB8GCleLAHHHT FuikMM03ZnV0ew7E+TPkHbzzPhBZOqS5HYF0HtgttHwIXdfIWp/XdTuEEk7uRRgYZ2Iao ifWRzoKaOQmhM++e1ydCqw9D4y9dZEFNMQLwSqcrvtb8cNwT1kl7SCFqYNE2lbutj4ne6 PTBQRsKegMB4Y3ena14fNF6tCynvJLPhF/cjPH2Jhs+B19XQhWkL3TgiOY02W24YHwRcP +LdkM8inAvyVi3DEbEqdjBPO9OFJcBOKPlCdkGvuwdNCuEpEwctWs0gV3voflG2CDKzmJ wu9JJOAWnq/0l1WpuDqWreKeQ/BUGZC2Gb4xRAqofulgvhs4WuYoEccjH4EJFIZ90S1EP R/ZLadqZaEhmjwGM5sMWbBbjT23XsRgg0Tzt9m8DENYMuYDqkMdRbt2jYZa+32p4hyxVe Y6H/pqYq5b9uOzumnShaK4WlmkQyXcNPkoSlMC1h4OGvqX/WUixpI38jyMA5Tc= - project: check: jobs: - tox-pep8 - openstack-tox-linters-ansible-devel - openstack-tox-linters-ansible-2.12 - ansible-collections-openstack-functional-devstack-releases: dependencies: &deps_unit_lint - tox-pep8 - openstack-tox-linters-ansible-2.12 - ansible-collections-openstack-functional-devstack-ansible-2.9: dependencies: *deps_unit_lint - ansible-collections-openstack-functional-devstack-ansible-2.12: dependencies: *deps_unit_lint - ansible-collections-openstack-functional-devstack-ansible-devel: dependencies: *deps_unit_lint - ansible-collections-openstack-functional-devstack-xena-ansible-2.12: dependencies: *deps_unit_lint - ansible-collections-openstack-functional-devstack-wallaby-ansible-2.12: dependencies: *deps_unit_lint - ansible-collections-openstack-functional-devstack-train-ansible-2.11: dependencies: *deps_unit_lint - ansible-collections-openstack-functional-devstack-octavia: dependencies: *deps_unit_lint - bifrost-collections-src: voting: false dependencies: *deps_unit_lint irrelevant-files: *ignore_files - bifrost-keystone-collections-src: voting: false dependencies: *deps_unit_lint irrelevant-files: *ignore_files - tripleo-ci-centos-8-standalone-osa-wallaby: dependencies: *deps_unit_lint - tripleo-ci-centos-9-standalone-osa-wallaby: voting: false dependencies: *deps_unit_lint gate: jobs: - tox-pep8 - openstack-tox-linters-ansible-2.12 - ansible-collections-openstack-functional-devstack-releases # - ansible-collections-openstack-functional-devstack-ansible-2.9 # - ansible-collections-openstack-functional-devstack-ansible-2.12 - ansible-collections-openstack-functional-devstack-wallaby-ansible-2.12 - ansible-collections-openstack-functional-devstack-xena-ansible-2.12 - ansible-collections-openstack-functional-devstack-train-ansible-2.11 - ansible-collections-openstack-functional-devstack-octavia - tripleo-ci-centos-8-standalone-osa-wallaby periodic: jobs: - openstack-tox-linters-ansible-devel - openstack-tox-linters-ansible-2.12 - ansible-collections-openstack-functional-devstack-releases - ansible-collections-openstack-functional-devstack-ansible-2.9 - ansible-collections-openstack-functional-devstack-ansible-2.12 - ansible-collections-openstack-functional-devstack-ansible-devel - ansible-collections-openstack-functional-devstack-xena-ansible-2.12 - ansible-collections-openstack-functional-devstack-wallaby-ansible-2.12 - ansible-collections-openstack-functional-devstack-victoria-ansible-2.12 - ansible-collections-openstack-functional-devstack-train-ansible-2.11 - bifrost-collections-src - bifrost-keystone-collections-src - ansible-collections-openstack-functional-devstack-octavia - tripleo-ci-centos-9-standalone-osa-wallaby - tripleo-ci-centos-8-standalone-osa-wallaby experimental: jobs: - tripleo-ci-centos-8-standalone-osa-train - ansible-collections-openstack-functional-devstack-ansible-2.11 - ansible-collections-openstack-functional-devstack-victoria-ansible-2.12 - ansible-collections-openstack-functional-devstack-ussuri-ansible-2.11 tag: jobs: - ansible-collections-openstack-release