# Shared jobs specific to the OpenStack Project # imports jobs from: # https://git.openstack.org/cgit/openstack-infra/project-config # https://git.openstack.org/cgit/openstack-infra/zuul-jobs - job: name: openstack-infra-base-integration description: | Runs roles that are included by default in the 'base' job in order to prevent regressions. This job should not be used outside the context of testing roles and playbooks found in project-config, zuul-jobs and openstack-zuul-jobs. parent: base-minimal required-projects: - openstack-infra/project-config roles: - zuul: openstack-infra/zuul-jobs run: tests/base.yaml files: - ^roles/configure-mirror/.* - ^roles/configure-unbound/.* - ^roles/emit-job-header/.* - ^roles/fetch-zuul-cloner/.* - ^roles/mirror-info/.* - ^roles/set-zuul-log-path-fact/.* - ^roles/use-cached-repos/.* - ^tests/.* - job: name: openstack-infra-base-integration-centos-7 parent: openstack-infra-base-integration nodeset: centos-7 - job: name: openstack-infra-base-integration-debian-jessie parent: openstack-infra-base-integration nodeset: debian-jessie - job: name: openstack-infra-base-integration-fedora-26 parent: openstack-infra-base-integration nodeset: fedora-26 - job: name: openstack-infra-base-integration-opensuse423 parent: openstack-infra-base-integration nodeset: opensuse-423 - job: name: openstack-infra-base-integration-ubuntu-trusty parent: openstack-infra-base-integration nodeset: ubuntu-trusty - job: name: openstack-infra-base-integration-ubuntu-xenial parent: openstack-infra-base-integration nodeset: ubuntu-xenial - job: name: openstack-infra-multinode-integration description: | Runs roles that are included by default in the 'multinode' job in order to prevent regressions. This job should not be used outside the context of testing roles and playbooks found in project-config, zuul-jobs and openstack-zuul-jobs. parent: base-minimal vars: ara_generate_html: true required-projects: - openstack-infra/project-config roles: - zuul: openstack-infra/zuul-jobs run: tests/multinode.yaml files: - ^roles/configure-mirror/.* - ^roles/configure-unbound/.* - ^roles/emit-job-header/.* - ^roles/fetch-zuul-cloner/.* - ^roles/mirror-info/.* - ^roles/set-zuul-log-path-fact/.* - ^roles/use-cached-repos/.* - ^roles/multi-node-bridge/.* - ^roles/multi-node-firewall/.* - ^roles/multi-node-hosts-file/.* - ^roles/multi-node-known-hosts/.* - ^tests/.* - job: name: openstack-infra-multinode-integration-centos-7 parent: openstack-infra-multinode-integration nodeset: nodes: - name: primary label: centos-7 - name: secondary label: centos-7 groups: - name: switch nodes: - primary - name: peers nodes: - secondary - job: name: openstack-infra-multinode-integration-debian-jessie parent: openstack-infra-multinode-integration nodeset: nodes: - name: primary label: debian-jessie - name: secondary label: debian-jessie groups: - name: switch nodes: - primary - name: peers nodes: - secondary - job: name: openstack-infra-multinode-integration-fedora-26 parent: openstack-infra-multinode-integration nodeset: nodes: - name: primary label: fedora-26 - name: secondary label: fedora-26 groups: - name: switch nodes: - primary - name: peers nodes: - secondary - job: name: openstack-infra-multinode-integration-opensuse423 parent: openstack-infra-multinode-integration nodeset: nodes: - name: primary label: opensuse-423 - name: secondary label: opensuse-423 groups: - name: switch nodes: - primary - name: peers nodes: - secondary - job: name: openstack-infra-multinode-integration-ubuntu-trusty parent: openstack-infra-multinode-integration nodeset: nodes: - name: primary label: ubuntu-trusty - name: secondary label: ubuntu-trusty groups: - name: switch nodes: - primary - name: peers nodes: - secondary - job: name: openstack-infra-multinode-integration-ubuntu-xenial parent: openstack-infra-multinode-integration nodeset: nodes: - name: primary label: ubuntu-xenial - name: secondary label: ubuntu-xenial groups: - name: switch nodes: - primary - name: peers nodes: - secondary - job: name: build-openstack-sphinx-docs parent: build-sphinx-docs branches: ^(?!driverfixes/).*$ description: | Builds documentation using Sphinx per the OpenStack PTI and then collects the results into the log directory so that they can be examined in their published form after a successful build. It runs the prepare-docs-for-afs role so that AFS stamp files can be examined if desired, and also validates htaccess files using the whereto tool. success-url: html/ required-projects: - name: openstack/requirements # Add neutron and horizon for the neutron-horizon-hack. # TODO(AJaeger) ZOMG DELETE THIS once we neutron-horizon-hack. - name: openstack/horizon - name: openstack/neutron pre-run: playbooks/sphinx-docs/neutron-horizon-hack.yaml roles: - zuul: openstack-infra/zuul-jobs vars: constraints_file: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt' - job: name: tox-py35-on-zuul parent: tox-py35 description: | Run zuul's py35 unittests on patches to zuul-jobs vars: zuul_work_dir: src/git.openstack.org/openstack-infra/zuul required-projects: - name: openstack-infra/zuul override-checkout: feature/zuulv3 - job: name: openstack-tox parent: tox description: | Base job to run tox jobs with OpenStack project specific updates. Processing upper-constraints files from openstack/requirements. required-projects: - name: openstack/requirements vars: tox_constraints_file: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt' - job: name: openstack-tox-py27 parent: openstack-tox description: | Run unit tests for an OpenStack Python project under cPython version 2.7. Uses tox with the ``py27`` environment. irrelevant-files: - ^.*\.rst$ - ^doc/.*$ - ^releasenotes/.*$ vars: tox_envlist: py27 bindep_profile: test py27 - job: name: openstack-tox-py35 parent: openstack-tox branches: ^(?!driverfixes/).*$ description: | Run unit tests for an OpenStack project under cPython version 3.5. Uses tox with the ``py35`` environment. irrelevant-files: - ^.*\.rst$ - ^doc/.*$ - ^releasenotes/.*$ - ^deliverables/.*$ vars: tox_envlist: py35 bindep_profile: test py35 - job: name: openstack-tox-pypy parent: openstack-tox description: | Run unit tests for an OpenStack Python project under PyPy. Uses tox with the ``pypy`` environment. irrelevant-files: - ^.*\.rst$ - ^doc/.*$ - ^releasenotes/.*$ vars: tox_envlist: pypy bindep_profile: test pypy - job: name: openstack-tox-linters parent: openstack-tox description: | Runs code linting tests. Uses tox with the ``linters`` environment. vars: tox_envlist: linters bindep_profile: test linters - job: name: openstack-tox-pep8 parent: openstack-tox description: | Runs code pep8 tests. Uses tox with the ``pep8`` environment. vars: tox_envlist: pep8 bindep_profile: test pep8 - job: name: openstack-tox-cover parent: tox-cover description: | Run code coverage tests. Uses tox with the ``cover`` environment. required-projects: - name: openstack/requirements irrelevant-files: - ^.*\.rst$ - ^doc/.*$ - ^releasenotes/.*$ success-url: cover/ vars: tox_constraints_file: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt' timeout: 2400 - job: name: openstack-tox-bashate parent: openstack-tox description: | Run bashate tests. Uses tox with the ``bashate`` environment. vars: tox_envlist: bashate - job: name: openstack-tox-build parent: openstack-tox description: | Run build tests. Uses tox with the ``build`` environment. vars: tox_envlist: build - job: name: openstack-tox-functional parent: openstack-tox description: | Run functional tests. Uses tox with the ``functional`` environment. irrelevant-files: - ^.*\.rst$ - ^doc/.*$ - ^releasenotes/.*$ vars: tox_envlist: functional - job: name: openstack-tox-functional-py35 parent: openstack-tox description: | Run functional tests using python 3.5. Uses tox with the ``functional-py35`` environment. irrelevant-files: - ^.*\.rst$ - ^doc/.*$ - ^releasenotes/.*$ vars: tox_envlist: functional-py35 - job: name: openstack-tox-validate parent: openstack-tox description: | Run validate tests. Uses tox with the ``validate`` environment. vars: tox_envlist: validate - job: name: openstack-tox-pylint parent: openstack-tox description: | Runs pylint tests. Uses tox with the ``pylint`` environment. irrelevant-files: - ^.*\.rst$ - ^doc/.*$ - ^releasenotes/.*$ vars: tox_envlist: pylint - job: name: openstack-tox-compare-cover parent: openstack-tox # NOTE(sambetts) This job runs the full UTs twice to compare the coverage # pre-and-post a patch so requires longer to run. timeout: 4500 description: | Run coverage comparison tests. Uses tox with the ``compare-cover`` environment. vars: tox_envlist: compare-cover - job: name: build-openstack-puppet-tarball description: | Build a puppet tarball but do not upload it anywhere. pre-run: playbooks/puppet-tarball/pre.yaml run: playbooks/puppet-tarball/run.yaml files: ^metadata.json$ - job: name: publish-openstack-puppet-branch-tarball parent: publish-openstack-artifacts description: | Publish the results of the puppet-tarball job to tarballs.openstack.org. pre-run: playbooks/puppet-tarball/pre.yaml run: playbooks/puppet-tarball/run.yaml post-run: playbooks/puppet-branch-tarball/post.yaml - job: name: publish-openstack-python-tarball parent: publish-openstack-artifacts description: | Publish the results of the tox-tarball job to tarballs.openstack.org. run: playbooks/python-tarball/run.yaml post-run: playbooks/python-tarball/post.yaml - job: name: publish-openstack-javascript-tarball parent: publish-openstack-artifacts description: | Build and publish source tarball for a Javascript project. Responds to these variables: .. zuul:jobvar:: node_version :default: 6 The version of Node to use. .. zuul:jobvar: zuul_work_dir :default: {{ zuul.project.src_dir }} Path to operate in. pre-run: playbooks/javascript/pre.yaml run: playbooks/javascript/tarball.yaml post-run: - playbooks/javascript/post.yaml - playbooks/javascript/post-tarball.yaml - job: name: announce-release description: Send a release announcement after publishing a project pre-run: playbooks/release/pre.yaml run: playbooks/release/announce.yaml required-projects: - openstack-infra/release-tools - job: name: xstatic-check-version description: Check version used by xstatic packages run: playbooks/xstatic/check-version.yaml - job: name: build-openstack-releasenotes branches: ^(?!driverfixes/).*$ parent: build-reno-releasenotes description: | Build releasenotes, with optional translation support, using reno. timeout: 1800 required-projects: - name: openstack/requirements vars: constraints_file: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt' - job: name: build-openstack-api-ref parent: build-openstack-sphinx-docs description: | Build api-ref document. This is only run on master branch of a project. timeout: 1800 vars: sphinx_build_dir: api-ref/build sphinx_source_dir: api-ref/source # We only publish the master branch, so no need to run # for changes on other branches. branches: master files: - ^api-ref/.* - ^doc/api_samples/.* - bindep.txt - doc/requirements.txt - test-requirements.txt - job: name: build-openstack-api-guide parent: build-openstack-sphinx-docs description: | Build api-guide document. This is only run for changes on master branch of a project. vars: sphinx_build_dir: api-ref/build sphinx_source_dir: api-ref/source # We only publish the master branch, so no need to run # for changes on other branches. branches: master files: - ^api-guide/.* - bindep.txt - doc/requirements.txt - test-requirements.txt - job: name: build-openstack-deploy-guide parent: build-openstack-sphinx-docs description: | Build deploy-guide document. vars: sphinx_build_dir: deploy-guide/build sphinx_source_dir: deploy-guide/source files: - ^deploy-guide/.* - bindep.txt - doc/requirements.txt - test-requirements.txt - job: name: build-openstack-install-guide parent: build-openstack-sphinx-docs description: | Build install-guide document. vars: sphinx_build_dir: install-guide/build sphinx_source_dir: install-guide/source # This job runs only pre-pike, with pike the documents have been # integrated into normal builds. branches: - stable/newton - stable/ocata files: - ^install-guide/.* - bindep.txt - doc/requirements.txt - test-requirements.txt - job: name: build-placement-api-ref parent: build-openstack-sphinx-docs description: | Build placement-api-ref document. This job runs only on master branch. # We only publish the master branch, so no need to run # for changes on other branches. branches: master vars: sphinx_build_dir: placement-api-ref/build sphinx_source_dir: placement-api-ref/source files: - ^placement-api-ref/.* - bindep.txt - doc/requirements.txt - test-requirements.txt - job: name: legacy-base description: | Base job for autoconverted legacy jobs pre-run: playbooks/legacy/pre.yaml nodeset: legacy-ubuntu-xenial - job: name: legacy-dsvm-base description: | Base job for autoconverted legacy devstack-gate jobs This job runs devstack-gate with as few changes as possible and may be used by jobs which have been automatically converted as part of the migration to Zuul v3. nodeset: devstack-single-node pre-run: playbooks/legacy/pre.yaml required-projects: - openstack-dev/devstack - openstack-infra/devstack-gate - openstack-infra/tripleo-ci - openstack/ceilometer - openstack/ceilometermiddleware - openstack/cinder - openstack/django_openstack_auth - openstack/glance - openstack/glance_store - openstack/heat - openstack/heat-cfntools - openstack/heat-templates - openstack/horizon - openstack/keystone - openstack/keystoneauth - openstack/keystonemiddleware - openstack/manila - openstack/manila-ui - openstack/neutron - openstack/neutron-fwaas - openstack/neutron-lbaas - openstack/neutron-vpnaas - openstack/nova - openstack/octavia - openstack/os-apply-config - openstack/os-brick - openstack/os-client-config - openstack/os-collect-config - openstack/os-net-config - openstack/os-refresh-config - openstack/osc-lib - openstack/requirements - openstack/swift - openstack/tempest - openstack/tempest-lib - openstack/tripleo-heat-templates - openstack/tripleo-image-elements - openstack/tripleo-incubator - openstack/zaqar - job: name: legacy-dsvm-base-multinode parent: legacy-dsvm-base description: | Base job for multinode devstack jobs. Will setup firewall rules on all the nodes allowing them to talk to each other. roles: - zuul: openstack-infra/zuul-jobs pre-run: playbooks/legacy/multinode-networking/pre.yaml - job: name: legacy-puppet-openstack-integration description: | Base job for autoconverted legacy puppet-openstack-integration This job runs provides the base required projects for puppet-openstack-integration jobs. nodeset: devstack-single-node pre-run: playbooks/legacy/pre.yaml required-projects: - openstack/puppet-aodh - openstack/puppet-barbican - openstack/puppet-ceilometer - openstack/puppet-ceph - openstack/puppet-cinder - openstack/puppet-cloudkitty - openstack/puppet-congress - openstack/puppet-designate - openstack/puppet-ec2api - openstack/puppet-glance - openstack/puppet-gnocchi - openstack/puppet-heat - openstack/puppet-horizon - openstack/puppet-ironic - openstack/puppet-keystone - openstack/puppet-manila - openstack/puppet-mistral - openstack/puppet-modulesync-configs - openstack/puppet-monasca - openstack/puppet-murano - openstack/puppet-neutron - openstack/puppet-nova - openstack/puppet-octavia - openstack/puppet-openstack-cookiecutter - openstack/puppet-openstack-integration - openstack/puppet-openstack_extras - openstack/puppet-openstacklib - openstack/puppet-oslo - openstack/puppet-ovn - openstack/puppet-panko - openstack/puppet-qdr - openstack/puppet-sahara - openstack/puppet-swift - openstack/puppet-tacker - openstack/puppet-tempest - openstack/puppet-trove - openstack/puppet-vswitch - openstack/puppet-vitrage - openstack/puppet-watcher - openstack/puppet-zaqar - openstack/tempest-horizon - job: name: legacy-publish-openstack-artifacts parent: publish-openstack-artifacts description: | Base job for autoconverted legacy jobs that publish artifacts nodeset: devstack-single-node pre-run: playbooks/legacy/pre.yaml - job: name: project-config-gerrit parent: tox description: | Runs checks on gerrit-related configuration. Uses ``gerrit`` tox env. vars: tox_envlist: gerrit files: - ^gerrit/acls/.*$ - bindep.txt - check_valid_gerrit_projects.py - gerrit/projects.yaml - other-requirements.txt - tools/check_projects_yaml_alphabetized.sh - tools/check_valid_gerrit_config.sh - tox.ini - job: name: project-config-grafyaml parent: tox description: | Runs checks on grafyaml configuration with the ``grafyaml`` tox env. vars: tox_envlist: grafyaml required-projects: - openstack-infra/grafyaml files: - ^grafana/.*$ - bindep.txt - other-requirements.txt - tools/grafyaml-validate.sh - tox.ini - job: name: project-config-irc-access parent: tox description: | Runs checks on IRC configuration with the ``irc`` tox env. vars: tox_envlist: irc files: - bindep.txt - accessbot/channels.yaml - gerritbot/channels.yaml - other-requirements.txt - tools/check_irc_access.py - tools/check_channels_yaml.sh - tools/irc_tests.py - tools/normalize_channels_yaml.py - tools/projectconfig_yamllib.py - tox.ini - job: name: project-config-nodepool parent: tox description: | Runs checks on nodepool configuration with the ``nodepool`` tox env. vars: tox_envlist: nodepool files: - ^nodepool/nodepool.yaml - bindep.txt - other-requirements.txt - tox.ini - job: name: build-openstack-specs-site parent: tox description: | Generates the index page of http://specs.openstack.org/. vars: tox_envlist: specs files: - bindep.txt - specs/.* - other-requirements.txt - tox.ini - job: name: project-config-dib parent: tox description: | Runs diskimage-builder on all elements in project-config. Uses the ``dib`` tox env. vars: tox_envlist: dib files: - ^nodepool/elements/.*$ - bindep.txt - other-requirements.txt - tox.ini - job: name: project-config-infra-docs-index parent: tox description: | Generates the index page for https://docs.openstack.org/infra/. vars: tox_envlist: infra-docs files: - bindep.txt - docs-site/.* - other-requirements.txt - tox.ini - job: name: project-config-build-openafs-centos description: | There are no official builds for AFS on Centos 7, hence we build our own and publish them to tarballs.openstack.org for our centos hosts that need access to the mirror to consume. parent: publish-openstack-artifacts run: playbooks/package-afs-centos/run.yaml post-run: playbooks/package-afs-centos/post.yaml nodeset: centos-7 - job: name: legacy-kolla-kubernetes-base description: | This job runs provides the base required projects for legacy-kolla-kubernetes jobs. parent: legacy-base required-projects: - openstack/requirements - job: name: openstack-zuul-jobs-linters parent: tox description: | This job runs against project-config, openstack-zuul-jobs and zuul-jobs so we can properly lint our ansible playbooks / roles required-projects: - openstack-infra/openstack-zuul-jobs - openstack-infra/project-config - openstack-infra/zuul-jobs vars: tox_envlist: linters tox_environment: ANSIBLE_ROLES_PATH: ~/src/git.openstack.org/openstack-infra/zuul-jobs/roles:~/src/git.openstack.org/openstack-infra/openstack-zuul-jobs/roles:~/src/git.openstack.org/openstack-infra/project-config/roles