# Shared zuul config specific to the OpenStack Project # Contains definitions of trusted jobs # Overrides jobs from: # https://git.openstack.org/cgit/openstack-infra/zuul-jobs # Changes to this job require a special procedure, because they can # not be tested before landing, and if they are faulty, they will # break all jobs, meaning subsequent corrections will not be able to # land. To make a change: # # 1) Ensure that base-test and its playbooks are identical to base. # 2) Make the change to base-test and/or its playbooks. # 3) Merge the change from step 2. No jobs normally use base-test, so # this is safe. # 4) Propose a change to a job to reparent it to base-test. Choose a # job which will exercise whatever you are changing. The # "unittests" job in zuul-jobs is a good choice. Use [DNM] in the # commit subject so that people know not to merge the change. Set # it to "Work in progress" so people don't review it. # 5) Once test results arrive for the change in step 2, make a change # which copies the job and/or playbooks of base-test to base. In # the commit message, link to (without using Depends-On:) the # change from step 4 so reviewers can see the test results. # 6) Once the change in step 5 merges, abandon the change from step 4. - job: name: base parent: null abstract: true description: | The base job for OpenStack's installation of Zuul. All jobs ultimately inherit from this. It runs a pre-playbook which copies all of the job's prepared git repos on to all of the nodes in the nodeset. It runs a post-playbook which copies all of the files in the logs/ subdirectory of the executor work directory to the logserver. It also sets default timeout and nodeset values (which may be overidden). Responds to these variables: .. zuul:jobvar:: base_serial :default: Omitted This sets the serial keyword in the pre and post playbooks which can be an integer or percentage. See ansible documentation for more information: http://docs.ansible.com/ansible/latest/playbooks_delegation.html pre-run: playbooks/base/pre.yaml post-run: - playbooks/base/post-ssh.yaml - playbooks/base/post-logs.yaml roles: - zuul: openstack-infra/zuul-jobs - zuul: openstack-infra/openstack-zuul-jobs vars: ara_generate_html: failure timeout: 1800 post-timeout: 1800 nodeset: nodes: - name: ubuntu-xenial label: ubuntu-xenial secrets: - site_logs - job: name: base-minimal parent: null abstract: true description: | A subset of what the 'base' job provides: the absolute minimum considered required to run for any one job. It doesn't set up cached git repositories, will not set up mirrors, doesn't validate the node, etc. It is meant to be used, amongst other things, to test roles and playbooks that would otherwise be included by default as part of the 'base' job. These tasks, if required, can be included by the dependant jobs themselves on a need basis. pre-run: playbooks/base-minimal/pre.yaml post-run: - playbooks/base-minimal/post-ssh.yaml - playbooks/base-minimal/post-logs.yaml roles: - zuul: openstack-infra/zuul-jobs vars: ara_generate_html: failure timeout: 1800 post-timeout: 1800 nodeset: nodes: - name: ubuntu-xenial label: ubuntu-xenial secrets: - site_logs # See the procedure described above "base" before making changes to # this job. - job: name: base-test parent: null description: | A job to test changes to the base job without disturbing the main job in production. Not for general use. pre-run: playbooks/base-test/pre.yaml post-run: - playbooks/base-test/post-ssh.yaml - playbooks/base-test/post-logs.yaml roles: - zuul: openstack-infra/zuul-jobs - zuul: openstack-infra/openstack-zuul-jobs timeout: 1800 post-timeout: 1800 nodeset: nodes: - name: ubuntu-xenial label: ubuntu-xenial secrets: - site_logs - job: name: publish-openstack-artifacts description: | Publish job to upload artifacts to tarballs.openstack.org post-review: true post-run: playbooks/publish/openstack-artifacts.yaml secrets: - secret: site_tarballs name: fileserver - job: name: release-openstack-puppet parent: publish-openstack-artifacts description: | Sign and release puppet tarballs to tarballs.o.o. pre-run: playbooks/puppet-tarball/pre.yaml run: playbooks/puppet-tarball/run.yaml post-run: playbooks/puppet-tarball/post.yaml secrets: - gpg_key - job: name: release-openstack-python-without-pypi parent: publish-openstack-artifacts description: | Sign and release python tarballs to tarballs.openstack.org, but do not upload to PyPI. pre-run: playbooks/python-tarball/pre.yaml run: playbooks/python-tarball/run.yaml post-run: - playbooks/python-tarball/post.yaml required-projects: - name: openstack/requirements secrets: - gpg_key vars: # NOTE(dhellmann): Library projects using a custom installation # script need to be told where the constraints file is. We can # remove this when tox is no longer part of the CTI for building # sdists. tox_constraints_file: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt' - job: name: release-openstack-python parent: publish-openstack-artifacts description: | Release python tarballs / wheels to pypi. pre-run: playbooks/python-tarball/pre.yaml run: playbooks/python-tarball/run.yaml post-run: - playbooks/python-tarball/post.yaml - playbooks/publish/pypi.yaml required-projects: # NOTE(dhellmann): Several projects that depend on neutron or # horizon for their testing use a special install script run via # tox that tries to use zuul-cloner to make the dependency # available before installing it from source. All libraries # require openstack/requirements for the custom install scripts # they run via tox. Until we change the PTI for building sdists # and wheels from Python projects so that it does not use tox, # we need to ensure those repos are present for zuul-cloner to # copy. The openstack/neutron, openstack/horizon, and # openstack/requirements repos can be removed from the list of # required-projects for this job when the job is modified to not # use tox. - name: openstack/neutron - name: openstack/horizon - name: openstack/requirements secrets: - secret: pypi_secret name: pypi_info - gpg_key vars: # NOTE(dhellmann): Library projects using a custom installation # script need to be told where the constraints file is. We can # remove this when tox is no longer part of the CTI for building # sdists. tox_constraints_file: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt' - job: name: publish-openstack-sphinx-docs-base description: | Base job for publishing sphinx documentation to /afs/.openstack.org/docs/. abstract: true protected: true pre-run: - playbooks/sphinx/pre.yaml run: playbooks/sphinx/run.yaml post-run: - playbooks/publish/openstack-afs.yaml required-projects: - name: openstack/requirements roles: - zuul: openstack-infra/zuul-jobs - zuul: openstack-infra/openstack-zuul-jobs vars: constraints_file: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt' secrets: - secret: afsdocs_secret name: afs - job: name: publish-openstack-sphinx-docs parent: publish-openstack-sphinx-docs-base description: | Publish the results of the build-openstack-sphinx-docs job to /afs/.openstack.org/docs/{{ zuul.project.short_name }}. Publishes depending on branch to latest/ (for master), or the basename of the branch like pike (for stable/pike). final: true pre-run: # TODO(mordred) REMOVE THIS HACK - playbooks/sphinx/neutron-horizon-hack.yaml post-run: - playbooks/sphinx/post.yaml required-projects: # TODO(mordred) REMOVE THIS HACK ONCE neutron-horizon-hack is removed - name: openstack/neutron - name: openstack/horizon - job: name: publish-openstack-sphinx-docs-python3 parent: publish-openstack-sphinx-docs-base description: | Publish the results of the build-openstack-sphinx-docs job to /afs/.openstack.org/docs/{{ zuul.project.short_name }}. Builds the docs using Sphinx with Python3. Publishes depending on branch to latest/ (for master), or the basename of the branch like pike (for stable/pike). final: true post-run: - playbooks/sphinx/post.yaml vars: sphinx_python: python3 - job: name: publish-openstack-sphinx-docs-direct parent: publish-openstack-sphinx-docs-base description: | Publish the results of the build-openstack-sphinx-docs job to /afs/.openstack.org/docs/{{ zuul.project.short_name }} Publishing is done from master branch directly without using /latest. final: true post-run: - playbooks/sphinx/post-direct.yaml branches: - master - job: name: publish-openstack-sphinx-docs-direct-python3 parent: publish-openstack-sphinx-docs-base description: | Publish the results of the build-openstack-sphinx-docs job to /afs/.openstack.org/docs/{{ zuul.project.short_name }} Builds the docs using Sphinx with Python3. Publishing is done from master branch directly without using /latest. final: true post-run: - playbooks/sphinx/post-direct.yaml vars: sphinx_python: python3 branches: - master - job: name: publish-openstack-contributor-guide parent: publish-openstack-sphinx-docs-base description: | Publish contributor-guide documents to https://docs.openstack.org/contributors final: true post-run: - playbooks/publish/contributor-guide-afs.yaml branches: master vars: afs_subpath: "/contributors" - job: name: publish-openstack-tox-docs description: | Special publication job for projects that need to run tox using the docs environment. Publish the results of the docs tox job to /afs/.openstack.org/docs/{{ zuul.project.short_name }}. Publishes depending on branch to latest/ (for master), or the basename of the branch like pike (for stable/pike). final: true pre-run: playbooks/project-config/pre-tox.yaml run: playbooks/project-config/run-tox.yaml allowed-projects: - openstack-dev/grenade - openstack/i18n post-run: - playbooks/project-config/post-tox.yaml - playbooks/sphinx/post.yaml - playbooks/publish/openstack-afs.yaml required-projects: - name: openstack/requirements roles: - zuul: openstack-infra/zuul-jobs - zuul: openstack-infra/openstack-zuul-jobs vars: tox_constraints_file: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt' tox_envlist: docs secrets: - secret: afsdocs_secret name: afs - job: name: publish-openstack-releasenotes description: | Publish the results of build-openstack-releasenotes to /afs/.openstack.org/docs/releasenotes/{{ zuul.project.short_name }} final: true pre-run: playbooks/releasenotes/pre.yaml run: playbooks/releasenotes/run.yaml post-run: - playbooks/publish/releasenotes.yaml - playbooks/publish/openstack-afs.yaml override-branch: master required-projects: - name: openstack/requirements roles: - zuul: openstack-infra/zuul-jobs vars: afs_subpath: "/releasenotes/{{ zuul.project.short_name }}" constraints_file: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt' sphinx_build_dir: releasenotes/build secrets: - secret: afsdocs_secret name: afs - job: name: publish-openstack-specs description: | Publish OpenStack specs to static.openstack.org specs/{{ zuul.project.short_name }} final: true pre-run: playbooks/sphinx/pre.yaml run: playbooks/sphinx/run.yaml post-run: playbooks/publish/openstack-specs.yaml required-projects: - name: openstack/requirements roles: - zuul: openstack-infra/zuul-jobs - zuul: openstack-infra/openstack-zuul-jobs vars: tox_constraints_file: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt' secrets: - site_logs - job: name: publish-openstack-specs-site description: | Publish OpenStack specs site to static.openstack.org specs/ final: true pre-run: playbooks/project-config/pre-tox.yaml run: playbooks/project-config/run-tox.yaml post-run: playbooks/publish/openstack-specs-site.yaml allowed-projects: - openstack-infra/project-config roles: - zuul: openstack-infra/zuul-jobs - zuul: openstack-infra/openstack-zuul-jobs vars: tox_envlist: specs secrets: - site_logs - job: name: publish-openstack-sphinx-docs-infra parent: publish-openstack-sphinx-docs-base description: | Publish the results of the openstack-build-sphinx-docs job to /afs/.openstack.org/infra/{{ zuul.project.short_name }} final: true post-run: - playbooks/sphinx/post-infra.yaml vars: afs_subpath: "/infra/{{ zuul.project.short_name }}" - job: name: publish-openstack-sphinx-docs-infra-python3 parent: publish-openstack-sphinx-docs-base description: | Publish the results of the openstack-build-sphinx-docs job to /afs/.openstack.org/infra/{{ zuul.project.short_name }} Builds the docs using Sphinx with Python3. final: true post-run: - playbooks/sphinx/post-infra.yaml vars: afs_subpath: "/infra/{{ zuul.project.short_name }}" sphinx_python: python3 - job: name: publish-infra-manual parent: publish-openstack-sphinx-docs-base description: | Publish the Infra Manual to /afs/.openstack.org/docs/infra/manual final: true post-run: - playbooks/sphinx/post-infra.yaml allowed-projects: - openstack-infra/infra-manual vars: afs_subpath: "/infra/manual" - job: name: publish-service-types-authority description: | Publish OpenStack Service Types Authority to https://service-types.openstack.org final: true pre-run: playbooks/project-config/pre-tox.yaml run: playbooks/project-config/run-tox.yaml post-run: playbooks/publish/service-types.yaml allowed-projects: - openstack/service-types-authority roles: - zuul: openstack-infra/zuul-jobs - zuul: openstack-infra/openstack-zuul-jobs vars: tox_envlist: publish secrets: - site_logs - job: name: publish-infra-index description: | Publish the infrastructure documentation index final: true pre-run: playbooks/project-config/pre-tox.yaml run: playbooks/project-config/run-tox.yaml post-run: - playbooks/publish/infra-index.yaml - playbooks/publish/openstack-afs.yaml allowed-projects: - openstack-infra/project-config roles: - zuul: openstack-infra/zuul-jobs - zuul: openstack-infra/openstack-zuul-jobs vars: tox_envlist: infra-docs afs_path: "/infra" secrets: - secret: afsdocs_secret name: afs - job: name: publish-infra-publications-index description: | Publish the publication index final: true run: playbooks/publications-index/run.yaml post-run: - playbooks/publish/publications-index.yaml - playbooks/publish/openstack-afs.yaml allowed-projects: - openstack-infra/publications roles: - zuul: openstack-infra/zuul-jobs - zuul: openstack-infra/openstack-zuul-jobs vars: afs_subpath: "/infra/publications/" tox_envlist: infra-docs secrets: - secret: afsdocs_secret name: afs - job: name: publish-infra-publications description: | Publish one publication from openstack-infra/publications final: true run: playbooks/publications/run.yaml post-run: - playbooks/publish/publications.yaml - playbooks/publish/openstack-afs.yaml allowed-projects: - openstack-infra/publications roles: - zuul: openstack-infra/zuul-jobs - zuul: openstack-infra/openstack-zuul-jobs vars: afs_subpath: "/infra/publications/" tox_envlist: infra-docs secrets: - secret: afsdocs_secret name: afs - job: name: publish-openstack-python-branch-tarball parent: publish-openstack-artifacts description: | Publish the results of the tox-tarball job to tarballs.openstack.org. pre-run: playbooks/python-tarball/pre.yaml run: playbooks/python-tarball/run.yaml post-run: playbooks/python-branch-tarball/post.yaml required-projects: # See job release-openstack-python for details - name: openstack/neutron - name: openstack/horizon - name: openstack/requirements - job: name: publish-irc-meetings description: | Publish the IRC meeting calendars to eavesdrop.openstack.org. final: true pre-run: playbooks/yaml2ical/pre.yaml run: playbooks/project-config/run-tox.yaml post-run: playbooks/yaml2ical/post.yaml allowed-projects: - openstack-infra/irc-meetings vars: tox_envlist: ical secrets: - name: fileserver secret: eavesdrop_ssh_key - job: name: base-publish-static abstract: true protected: true description: | Base job for jobs that publish content to static.openstack.org. Jobs need to set the variable ``static_target`` for site to publish to. pre-run: playbooks/sphinx/pre.yaml run: playbooks/sphinx/run.yaml post-run: playbooks/publish/static.yaml secrets: - name: fileserver secret: static_ssh_key - job: name: publish-static parent: base-publish-static description: | Publish content to static.openstack.org to /srv/static/{{ zuul.project.short_name }} final: true vars: static_target: "{{ zuul.project.short_name }}" sphinx_python: python3 - job: name: publish-governance-sigs parent: base-publish-static description: | Publish content to static.openstack.org to /srv/static/sigs final: true allowed-projects: - openstack/governance-sigs vars: static_target: sigs - job: name: publish-governance-tc parent: base-publish-static description: | Publish content to static.openstack.org to /srv/static/tc final: true allowed-projects: - openstack/governance vars: static_target: tc sphinx_python: python3 - job: name: publish-governance-uc parent: base-publish-static description: | Publish content to static.openstack.org to /srv/static/uc final: true allowed-projects: - openstack/governance-uc vars: static_target: uc - job: name: publish-governance-website parent: base-publish-static description: | Publish content to static.openstack.org to /srv/static/governance final: true allowed-projects: - openstack/governance-website vars: static_target: governance - job: name: publish-security parent: base-publish-static description: | Publish content to static.openstack.org to /srv/static/security final: true allowed-projects: - openstack/ossa vars: static_target: security - job: name: publish-openstack-manuals-base description: | Base job to publish manual related documents. These build jobs invoke a tox command and expect the published content to be in publish-docs directory. This content is published on the root of the website. Note that this build job does not create a root-marker file, this has to be done by scripts called from tox. pre-run: playbooks/project-config/pre-tox.yaml run: playbooks/project-config/run-tox.yaml roles: - zuul: openstack-infra/zuul-jobs - zuul: openstack-infra/openstack-zuul-jobs # Syncing to AFS can take longer than default 30 mins post-timeout: 3600 vars: tox_envlist: publishdocs tox_environment: # The tox job writes the root-marker file directly and thus # needs the following variables set: ZUUL_PROJECT: '{{ zuul.project.name }}' ZUUL_BRANCH: '{{ zuul.branch }}' ZUUL_UUID: '{{ zuul.build }}' ZUUL_NEWREF: '{{ zuul.ref }}' - job: name: publish-openstack-manuals parent: publish-openstack-manuals-base final: true post-run: - playbooks/publish/manuals.yaml - playbooks/publish/openstack-afs.yaml allowed-projects: - openstack/openstack-manuals - openstack/security-doc - openstack/training-guides vars: afs_subpath: "" secrets: - secret: afsdocs_secret name: afs - job: name: publish-openstack-manuals-developer parent: publish-openstack-manuals-base post-run: playbooks/publish/manuals.yaml final: true allowed-projects: - openstack/api-site secrets: - secret: afsdeveloper_secret name: afs - job: name: publish-openstack-manuals-lang parent: publish-openstack-manuals-base post-run: playbooks/publish/manuals.yaml final: true allowed-projects: - openstack/openstack-manuals - openstack/security-doc vars: tox_envlist: publishlang secrets: - secret: afsdocs_secret name: afs - job: name: publish-openstack-manuals-developer-lang parent: publish-openstack-manuals-base post-run: playbooks/publish/manuals.yaml final: true allowed-projects: - openstack/api-site vars: tox_envlist: publishlang secrets: - secret: afsdeveloper_secret name: afs - job: name: publish-api-guide description: | Publish api-guide document to https://developer.openstack.org/api-guide. pre-run: playbooks/sphinx/pre.yaml run: playbooks/sphinx/run.yaml post-run: playbooks/publish/api-guide.yaml roles: - zuul: openstack-infra/zuul-jobs - zuul: openstack-infra/openstack-zuul-jobs # We only publish the master branch, so no need to run # for changes on other branches. branches: master vars: sphinx_source_dir: api-guide/source sphinx_build_dir: api-guide/build secrets: - secret: afsdeveloper_secret name: afs - job: name: publish-api-ref description: | Publish api-ref document to https://developer.openstack.org/api-ref. pre-run: playbooks/sphinx/pre.yaml run: playbooks/sphinx/run.yaml post-run: playbooks/publish/api-ref.yaml roles: - zuul: openstack-infra/zuul-jobs - zuul: openstack-infra/openstack-zuul-jobs # We only publish the master branch, so no need to run # for changes on other branches. branches: master vars: sphinx_build_dir: api-ref/build sphinx_source_dir: api-ref/source secrets: - secret: afsdeveloper_secret name: afs - job: name: publish-placement-api-ref description: | Publish placement-api-ref document to https://developer.openstack.org/api-ref/placement. allowed-projects: - openstack/nova pre-run: playbooks/sphinx/pre.yaml run: playbooks/sphinx/run.yaml post-run: - playbooks/publish/placement-api-ref.yaml - playbooks/publish/openstack-afs.yaml roles: - zuul: openstack-infra/zuul-jobs - zuul: openstack-infra/openstack-zuul-jobs # We only publish the master branch, so no need to run # for changes on other branches. branches: master vars: afs_subpath: "/api-ref/placement" sphinx_build_dir: placement-api-ref/build sphinx_source_dir: placement-api-ref/source secrets: - secret: afsdeveloper_secret name: afs - job: name: publish-install-guide description: | Publish install-guide document to https://docs.openstack.org/project-install-guide/ pre-run: playbooks/sphinx/pre.yaml run: playbooks/sphinx/run.yaml post-run: playbooks/publish/install-guide.yaml roles: - zuul: openstack-infra/zuul-jobs - zuul: openstack-infra/openstack-zuul-jobs # This job runs only pre-pike, with pike the documents have been # integrated into normal builds. branches: - stable/ocata vars: sphinx_build_dir: install-guide/build sphinx_source_dir: install-guide/source secrets: - secret: afsdocs_secret name: afs - job: name: publish-deploy-guide parent: publish-openstack-sphinx-docs-base description: | Publish deploy-guide document to https://docs.openstack.org/project-deploy-guide/ post-run: - playbooks/publish/deploy-guide.yaml vars: afs_subpath: "/project-deploy-guide/{{ zuul.project.short_name }}" sphinx_build_dir: deploy-guide/build sphinx_source_dir: deploy-guide/source - job: name: publish-training-labs-scripts parent: publish-openstack-artifacts description: | Publish training-labs tarball to tarballs.openstack.org. pre-run: playbooks/training-labs/pre.yaml run: playbooks/training-labs/run.yaml post-run: playbooks/training-labs/post.yaml secrets: - secret: site_tarballs name: fileserver allowed-projects: - openstack/training-labs - job: name: publish-openstack-javascript-content parent: publish-openstack-artifacts description: | Publish javascript content tarballs to tarballs.openstack.org. Content tarballs contain the built javascript/css/html artifacts. They are different from source tarballs, which are handled by the publish-openstack-javascript-tarball job. pre-run: playbooks/javascript/pre.yaml run: playbooks/javascript/content.yaml post-run: playbooks/javascript/publish.yaml - job: name: release-openstack-javascript parent: publish-openstack-artifacts description: | Release javascript tarballs to npm. pre-run: playbooks/javascript/pre.yaml run: playbooks/javascript/tarball.yaml post-run: playbooks/javascript/release.yaml secrets: - npm_credentials - gpg_key - job: name: propose-updates pre-run: playbooks/proposal/pre.yaml description: | Sync content to other projects as a proposed change. run: playbooks/proposal/propose-updates.yaml secrets: - secret: proposal_ssh_key name: ssh_key - job: name: propose-update-constraints parent: propose-updates description: | Update constraint files for requirements project with a proposed change. run: playbooks/proposal/propose-update-constraints.yaml dependencies: - release-openstack-python - job: name: propose-project-config-update parent: propose-updates description: | Update project-config files with a proposed change. run: playbooks/proposal/propose-project-config-update.yaml - job: name: build-wheel-mirror-base abstract: true description: | Base job for building of wheel for OpenStack CI mirrors. pre-run: playbooks/wheel/pre.yaml run: playbooks/wheel/build.yaml post-run: playbooks/wheel/post-base.yaml # 2.5 hours timeout: 9000 # The job iterates over all branches, so we only need to run it on # master. branches: master allowed-projects: - openstack/requirements roles: - zuul: openstack-infra/ansible-puppet name: puppet required-projects: - openstack-infra/system-config - openstack-infra/puppet-kerberos - openstack-infra/puppet-openafs - job: name: build-wheel-mirror-centos-7 parent: build-wheel-mirror-base description: | Build CentOS 7 wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-mirror-centos-7-python2 label: centos-7 host-vars: wheel-mirror-centos-7-python2: wheel_python: python2 - job: name: publish-wheel-mirror-centos-7 description: | Publish CentOS 7 wheels for OpenStack CI mirrors. parent: build-wheel-mirror-centos-7 post-run: playbooks/publish/wheel-mirror.yaml final: true secrets: - name: afs secret: wheel_keytab - job: name: build-wheel-mirror-ubuntu-bionic parent: build-wheel-mirror-base description: | Build Ubuntu Bionic wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-mirror-ubuntu-bionic-python2 label: ubuntu-bionic - name: wheel-mirror-ubuntu-bionic-python3 label: ubuntu-bionic host-vars: wheel-mirror-ubuntu-bionic-python2: wheel_python: python2 wheel-mirror-ubuntu-bionic-python3: wheel_python: python3 - job: name: publish-wheel-mirror-ubuntu-bionic parent: build-wheel-mirror-ubuntu-bionic description: | Publish Ubuntu Bionic wheels for OpenStack CI mirrors. post-run: playbooks/publish/wheel-mirror.yaml final: true secrets: - name: afs secret: wheel_keytab - job: name: build-wheel-mirror-ubuntu-trusty parent: build-wheel-mirror-base description: | Build Ubuntu Trusty wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-mirror-ubuntu-trusty-python2 label: ubuntu-trusty - name: wheel-mirror-ubuntu-trusty-python3 label: ubuntu-trusty host-vars: wheel-mirror-ubuntu-trusty-python2: wheel_python: python2 wheel-mirror-ubuntu-trusty-python3: wheel_python: python3 - job: name: publish-wheel-mirror-ubuntu-trusty parent: build-wheel-mirror-ubuntu-trusty description: | Publish Ubuntu Trusty wheels for OpenStack CI mirrors. post-run: playbooks/publish/wheel-mirror.yaml final: true secrets: - name: afs secret: wheel_keytab - job: name: build-wheel-mirror-ubuntu-xenial parent: build-wheel-mirror-base description: | Build Ubuntu Xenial wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-mirror-ubuntu-xenial-python2 label: ubuntu-xenial - name: wheel-mirror-ubuntu-xenial-python3 label: ubuntu-xenial host-vars: wheel-mirror-ubuntu-xenial-python2: wheel_python: python2 wheel-mirror-ubuntu-xenial-python3: wheel_python: python3 - job: name: publish-wheel-mirror-ubuntu-xenial parent: build-wheel-mirror-ubuntu-xenial description: | Publish Ubuntu Xenial wheels for OpenStack CI mirrors. post-run: playbooks/publish/wheel-mirror.yaml final: true secrets: - name: afs secret: wheel_keytab - job: name: build-wheel-mirror-ubuntu-xenial-arm64 parent: build-wheel-mirror-base description: | Build Ubuntu Xenial ARM64 wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-mirror-ubuntu-xenial-arm64-python2 label: ubuntu-xenial-arm64 - name: wheel-mirror-ubuntu-xenial-arm64-python3 label: ubuntu-xenial-arm64 host-vars: wheel-mirror-ubuntu-xenial-arm64-python2: wheel_python: python2 wheel-mirror-ubuntu-xenial-arm64-python3: wheel_python: python3 - job: name: publish-wheel-mirror-ubuntu-xenial-arm64 parent: build-wheel-mirror-ubuntu-xenial-arm64 description: | Publish Ubuntu Xenial ARM64 wheels for OpenStack CI mirrors. post-run: playbooks/publish/wheel-mirror.yaml final: true secrets: - name: afs secret: wheel_keytab - job: name: release-wheel-mirror description: | Release published wheels to OpenStack CI mirrors. run: playbooks/wheel/release.yaml nodeset: nodes: [] secrets: - name: afs secret: afsadmin_keytab - job: name: tag-releases description: | Tag projects for a release. pre-run: playbooks/release/pre.yaml run: playbooks/release/tag.yaml post-run: playbooks/release/post.yaml final: true secrets: - name: lp_creds secret: lp_creds - name: ssh_key secret: release_ssh_key - gpg_key - job: name: project-config-check-main-yaml description: | Check file zuul.d/main.yaml in project-config. pre-run: playbooks/check-main-yaml/pre.yaml run: playbooks/project-config/run-tox.yaml post-run: playbooks/check-main-yaml/post.yaml allowed-projects: - openstack-infra/project-config final: true vars: tox_envlist: add-projects-to-main files: - zuul/main.yaml - gerrit/projects.yaml # Limit number of translation jobs accessing translation server since # Zanata has problems with too many concurrent accesses. - semaphore: name: translations max: 10 - job: name: upstream-translation-update parent: propose-updates description: | Push strings for translation to translation server. pre-run: playbooks/translation/pre.yaml run: playbooks/translation/upstream-translation-update.yaml post-run: playbooks/publish/openstack-artifacts.yaml semaphore: translations vars: fileserver_leading_path: translation-source constraints_file: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt' required-projects: - openstack/requirements secrets: - secret: site_tarballs name: fileserver - zanata_api_credentials - job: name: propose-translation-update parent: propose-updates description: | Import translations from translation server to projects as proposed change. pre-run: playbooks/translation/pre.yaml run: playbooks/translation/propose-translation-update.yaml vars: constraints_file: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt' semaphore: translations required-projects: - openstack/requirements secrets: - zanata_api_credentials - job: name: project-config-bindep-fallback abstract: true description: | Check installation of binary packages for file nodepool/elements/bindep-fallback.txt. run: playbooks/bindep-fallback/run.yaml files: - nodepool/elements/bindep-fallback.txt - playbooks/bindep-fallback/run.yaml - job: name: project-config-bindep-fallback-centos-7 parent: project-config-bindep-fallback description: | Check installation of binary packages for file nodepool/elements/bindep-fallback.txt. The testing is done for CentOS 7. nodeset: centos-7 - job: name: project-config-bindep-fallback-fedora-27 parent: project-config-bindep-fallback description: | Check installation of binary packages for file nodepool/elements/bindep-fallback.txt. The testing is done for Fedora 27. nodeset: fedora-27 - job: name: project-config-bindep-fallback-debian-jessie parent: project-config-bindep-fallback description: | Check installation of binary packages for file nodepool/elements/bindep-fallback.txt. The testing is done for Debian Jessie. nodeset: debian-jessie - job: name: project-config-bindep-fallback-opensuse-423 parent: project-config-bindep-fallback description: | Check installation of binary packages for file nodepool/elements/bindep-fallback.txt. The testing is done for openSUSE Leap 42.3. nodeset: opensuse-423 - job: name: project-config-bindep-fallback-ubuntu-trusty parent: project-config-bindep-fallback description: | Check installation of binary packages for file nodepool/elements/bindep-fallback.txt. The testing is done for Ubuntu Trusty. nodeset: ubuntu-trusty - job: name: project-config-bindep-fallback-ubuntu-xenial parent: project-config-bindep-fallback description: | Check installation of binary packages for file nodepool/elements/bindep-fallback.txt. The testing is done for Ubuntu Xenial. nodeset: ubuntu-xenial # Limit number of requirements proposal jobs. We've seen races where # two post jobs proposed the same change with different change-ids. - semaphore: name: propose-requirements max: 1 - job: name: propose-update-requirements parent: propose-updates description: | Update other projects after changes to requirements project using proposed changes. semaphore: propose-requirements timeout: 5400 vars: update_target: requirements