# Shared zuul config specific to the OpenStack Project # Contains definitions of trusted jobs # Overrides jobs from: # https://opendev.org/zuul/zuul-jobs - 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.yaml - playbooks/base-minimal/post-logs.yaml roles: - zuul: zuul/zuul-jobs vars: ara_report_type: database ara_report_path: ara-report timeout: 1800 post-timeout: 1800 nodeset: nodes: - name: ubuntu-xenial label: ubuntu-xenial secrets: - site_logs_project_config # TODO(pabelanger): Look to see if we can delete once topic:zuul-minimal-jobs is # finished. - job: name: base-ozj 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-ozj/pre.yaml post-run: - playbooks/base-ozj/post.yaml - playbooks/base-ozj/post-logs.yaml roles: - zuul: zuul/zuul-jobs vars: ara_report_type: database ara_report_path: ara-report timeout: 1800 post-timeout: 1800 nodeset: nodes: - name: ubuntu-xenial label: ubuntu-xenial secrets: - site_logs_project_config - 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 - playbooks/publish/puppetforge.yaml secrets: - gpg_key - name: puppetforge secret: openstack_puppetforge_credentials - job: name: release-openstack-python parent: publish-openstack-artifacts description: | Release python tarballs / wheels to pypi. pre-run: playbooks/pti-python-tarball/pre.yaml run: playbooks/pti-python-tarball/run.yaml post-run: - playbooks/pti-python-tarball/post.yaml - playbooks/publish/pypi.yaml secrets: - secret: pypi_secret name: pypi_info - gpg_key vars: release_python: python3 twine_python: python3 bdist_wheel_xargs: "--universal" - job: name: test-release-openstack parent: base description: | Test building python tarballs / wheels and the packaging metadata. pre-run: playbooks/pti-python-tarball/pre.yaml run: playbooks/pti-python-tarball/check.yaml vars: release_python: python3 twine_python: python3 bdist_wheel_xargs: "--universal" files: - setup.cfg - setup.py - README.rst - job: name: publish-zuul-python-branch-tarball parent: publish-openstack-artifacts description: | Publish the results of the tox-tarball job to tarballs.openstack.org. pre-run: playbooks/zuul-tarball/pre.yaml run: playbooks/zuul-tarball/run.yaml post-run: playbooks/python-branch-tarball/post.yaml vars: node_version: 10 - job: name: release-zuul-python parent: publish-openstack-artifacts description: | Release python tarballs / wheels to pypi for zuul projects. pre-run: playbooks/zuul-tarball/pre.yaml run: playbooks/zuul-tarball/run.yaml post-run: - playbooks/zuul-tarball/post.yaml - playbooks/publish/pypi.yaml secrets: - secret: pypi_secret name: pypi_info - gpg_key vars: node_version: 10 - job: name: publish-openstack-sphinx-docs-base nodeset: ubuntu-xenial description: | Base job for publishing sphinx documentation to /afs/.openstack.org/docs/. This job is obsolete, use ``publish-openstack-tox-docs-base`` instead. 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: zuul/zuul-jobs - zuul: openstack/openstack-zuul-jobs secrets: - secret: afsdocs_secret name: afs vars: constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' - 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). This is the publication job for ``build-openstack-sphinx-docs``. This job is obsolete and should not be used anymore since rocky, use ``publish-openstack-docs`` instead. 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-tox-docs-base description: | Base job for publishing docs tox job. Publish the results of the docs tox job to /afs/.openstack.org/docs/{{ zuul.project.short_name }}. branches: ^(?!stable/(ocata|pike|queens|rocky)).*$ abstract: true protected: true pre-run: playbooks/project-config/pre-tox.yaml run: playbooks/project-config/run-tox.yaml post-run: - playbooks/project-config/post-tox.yaml - playbooks/publish/openstack-afs.yaml required-projects: - name: openstack/requirements roles: - zuul: zuul/zuul-jobs - zuul: openstack/openstack-zuul-jobs vars: tox_envlist: docs bindep_profile: compile doc tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' secrets: - secret: afsdocs_secret name: afs - job: name: publish-openstack-tox-docs-base nodeset: ubuntu-xenial description: | Base job for publishing docs tox job. Publish the results of the docs tox job to /afs/.openstack.org/docs/{{ zuul.project.short_name }}. This job runs on Xenial for stable/ocata, pike, queens and rocky. This job is prepared to make sure all stable branches before stable/stein will keep running on xenial. branches: - stable/ocata - stable/pike - stable/queens - stable/rocky abstract: true protected: true pre-run: playbooks/project-config/pre-tox.yaml run: playbooks/project-config/run-tox.yaml post-run: - playbooks/project-config/post-tox.yaml - playbooks/publish/openstack-afs.yaml required-projects: - name: openstack/requirements roles: - zuul: zuul/zuul-jobs - zuul: openstack/openstack-zuul-jobs vars: tox_envlist: docs bindep_profile: compile doc tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' secrets: - secret: afsdocs_secret name: afs - job: name: publish-openstack-tox-docs parent: publish-openstack-tox-docs-base description: | Publication job for projects that run tox using the docs environment following OpenStack PTI. 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). This is the publication job for ``openstack-tox-docs``. This is deprecated, use ``promote-openstack-tox-docs`` instead. final: true post-run: - playbooks/sphinx/post.yaml required-projects: - name: openstack/requirements vars: tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' - job: name: promote-openstack-tox-docs parent: opendev-promote-docs-base description: | Promote content from openstack-tox-docs job for projects that run tox using the docs environment following OpenStack PTI. 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). This is the promote job for ``openstack-tox-docs``. final: true vars: download_artifact_job: openstack-tox-docs secrets: - secret: afsdocs_secret-tox-docs name: afs pass-to-parent: true - job: name: promote-openstack-tox-docs-direct parent: opendev-promote-docs-base description: | Promote content from openstack-tox-docs job for projects that run tox using the docs environment following OpenStack PTI. Publish the results of the docs tox job to /afs/.openstack.org/docs/{{ zuul.project.short_name }}. Publishing is done from master branch directly without using /latest. This is a promote job for ``openstack-tox-docs``. final: true branches: master vars: download_artifact_job: openstack-tox-docs secrets: - secret: afsdocs_secret-tox-docs-direct name: afs pass-to-parent: true - job: name: promote-tox-docs-special-base parent: opendev-promote-docs-base description: | Promote content from openstack-tox-docs job for some projects that need a special location. Publish the results of the tox-docs job to /afs/.openstack.org/docs/{{ special_publish_directory }}. This is a promote job for ``openstack-tox-docs``. A job needs to set the variable `special_publish_directory`. abstract: true protected: true vars: download_artifact_job: openstack-tox-docs secrets: - secret: afsdocs_secret-tox-docs-special name: afs pass-to-parent: true - job: name: promote-openstack-contributor-guide parent: promote-tox-docs-special-base description: | Publish contributor-guide documents to https://docs.openstack.org/contributors final: true allowed-projects: - openstack/contributor-guide branches: master vars: special_publish_directory: "contributors" - job: name: publish-openstack-releasenotes-base description: | Abstract base job to publish the results of build-openstack-releasenotes to /afs/.openstack.org/docs/releasenotes/{{ zuul.project.short_name }} # This job is protected-abstract because it sets the afs_subpath # variable; it is not safe to let that be overridden in an # untrusted job because it would allow writing outside of the # project's directory on the production doc site. protected: true abstract: 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 # Building translated releasenotes can take long for large repositories timeout: 3600 required-projects: - name: openstack/requirements roles: - zuul: openstack/openstack-zuul-jobs - zuul: zuul/zuul-jobs vars: afs_subpath: "/releasenotes/{{ zuul.project.short_name }}" constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' sphinx_build_dir: releasenotes/build secrets: - secret: afsdocs_secret name: afs - job: name: promote-openstack-releasenotes parent: opendev-promote-docs-base description: | Promote the results of build-openstack-releasenotes to /afs/.openstack.org/docs/releasenotes/{{ zuul.project.short_name }} final: true vars: download_artifact_job: build-openstack-releasenotes secrets: - secret: afsdocs_secret-releasenotes name: afs pass-to-parent: true # Same file list as for job build-reno-releasenotes that is # defined in zuul/zuul-jobs repo, file zuul.d/python-jobs.yaml. # Keep those lists in sync. files: - ^releasenotes/.* - bindep.txt - doc/requirements.txt - test-requirements.txt - tox.ini - job: name: publish-openstack-releasenotes parent: publish-openstack-releasenotes-base description: | Publish the results of build-openstack-releasenotes to /afs/.openstack.org/docs/releasenotes/{{ zuul.project.short_name }} # This job is final because its parent sets the afs_subpath # variable; it is not safe to let that be overridden in an # untrusted job because it would allow writing outside of the # project's directory on the production doc site. final: true - job: name: publish-openstack-releasenotes-python3 parent: publish-openstack-releasenotes-base description: | Publish the results of build-openstack-releasenotes to /afs/.openstack.org/docs/releasenotes/{{ zuul.project.short_name }} Uses python3. # This job is final because its parent sets the afs_subpath # variable; it is not safe to let that be overridden in an # untrusted job because it would allow writing outside of the # project's directory on the production doc site. final: true vars: sphinx_python: python3 - job: name: promote-openstack-specs-base parent: opendev-promote-docs-base abstract: true protected: true description: | Base job to promote content to specs.openstack.org. Jobs need to set the variable ``static_target`` for site to publish to. run: playbooks/static-docs/promote.yaml vars: download_artifact_job: build-openstack-specs-site static_target: "" roles: - zuul: zuul/zuul-jobs - zuul: openstack/openstack-zuul-jobs secrets: - name: fileserver secret: site_specs_promote - job: name: promote-openstack-specs-site parent: promote-openstack-specs-base final: true description: | Publish OpenStack specs site to static.openstack.org specs/ This is a promote job for ``build-openstack-specs-site``. allowed-projects: - openstack/project-config vars: download_artifact_job: build-openstack-specs-site static_target: "" - job: name: promote-openstack-specs parent: promote-openstack-specs-base final: true description: | Publish OpenStack specs project to static.openstack.org specs/{{ zuul.project.name }}. This is a promote job for ``openstack-tox-docs``. vars: download_artifact_job: openstack-tox-docs static_target: "{{ zuul.project.name }}" - job: name: promote-tox-docs-infra parent: opendev-promote-docs-base description: | Promote content from tox-docs job for Infra projects. Publish the results of the tox-docs job to /afs/.openstack.org/docs/infra/{{ zuul.project.short_name }}. This is a promote job for ``tox-docs``. final: true vars: download_artifact_job: opendev-tox-docs secrets: - secret: afsdocs_secret-tox-docs-infra name: afs pass-to-parent: true - job: name: publish-tox-docs-infra-bionic parent: publish-openstack-tox-docs-base description: | Publish the results of the tox docs job to /afs/.openstack.org/infra/{{ zuul.project.short_name }} using an ubuntu-bionic nodeset (openstackid will use this to get around the final: true in publish-tox-docs-infra until the default nodeset is updated in the base job) final: true post-run: - playbooks/sphinx/post-infra.yaml vars: afs_subpath: "/infra/{{ zuul.project.short_name }}" bindep_profile: compile doc nodeset: ubuntu-bionic - job: name: promote-infra-manual parent: promote-tox-docs-special-base description: | Promote infra-manual documents to https://docs.openstack.org/infra/manual allowed-projects: - openstack/infra-manual final: true branches: master vars: download_artifact_job: tox-docs special_publish_directory: "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: zuul/zuul-jobs - zuul: openstack/openstack-zuul-jobs vars: tox_envlist: publish secrets: - site_specs - job: name: promote-infra-index parent: promote-tox-docs-special-base description: | Promote infra index.html to https://docs.openstack.org/infra/ allowed-projects: - openstack/project-config final: true branches: master vars: download_artifact_job: project-config-infra-docs-index special_publish_directory: "infra" - 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 # Index is always published from master override-branch: master allowed-projects: - opendev/publications roles: - zuul: zuul/zuul-jobs - zuul: openstack/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 opendev/publications final: true run: playbooks/publications/run.yaml post-run: - playbooks/publish/publications.yaml - playbooks/publish/openstack-afs.yaml allowed-projects: - opendev/publications roles: - zuul: zuul/zuul-jobs - zuul: openstack/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/pti-python-tarball/pre.yaml run: playbooks/pti-python-tarball/run.yaml post-run: playbooks/python-branch-tarball/post.yaml - 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: - opendev/irc-meetings vars: tox_envlist: ical secrets: - name: fileserver secret: eavesdrop_ssh_key - job: name: base-publish-tox-docs-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. This job uses ``tox -e docs`` for building documents. roles: - zuul: openstack/openstack-zuul-jobs pre-run: playbooks/project-config/pre-tox.yaml run: playbooks/project-config/run-tox.yaml post-run: - playbooks/sphinx/post-direct.yaml - playbooks/project-config/post-tox.yaml - playbooks/publish/static-tox-docs.yaml vars: tox_envlist: docs secrets: - name: fileserver secret: static_ssh_key - job: name: base-promote-tox-docs-static parent: opendev-promote-docs-base abstract: true protected: true description: | Base job for jobs that promote content to static.openstack.org. Jobs need to set the variable ``static_target`` for site to publish to. This is a promote job for ``openstack-tox-docs``. run: playbooks/static-docs/promote.yaml vars: download_artifact_job: openstack-tox-docs roles: - zuul: zuul/zuul-jobs - zuul: openstack/openstack-zuul-jobs secrets: - name: fileserver secret: static_ssh_key pass-to-parent: true - job: name: publish-tox-docs-static parent: base-publish-tox-docs-static description: | Publish content to static.openstack.org to /srv/static/{{ zuul.project.short_name }} final: true allowed-projects: - openstack/releases vars: static_target: "{{ zuul.project.short_name }}" - job: name: promote-tox-docs-static parent: base-promote-tox-docs-static description: | Promote content to static.openstack.org to /srv/static/{{ zuul.project.short_name }} allowed-projects: - openstack/election - openstack/transparency-policy final: true vars: static_target: "{{ zuul.project.short_name }}" - job: name: promote-governance-sigs parent: base-promote-tox-docs-static description: | Promote content to static.openstack.org to /srv/static/sigs final: true allowed-projects: - openstack/governance-sigs vars: static_target: sigs - job: name: promote-governance-tc parent: base-promote-tox-docs-static description: | Promote content to static.openstack.org to /srv/static/tc final: true allowed-projects: - openstack/governance vars: static_target: tc - job: name: promote-governance-uc parent: base-promote-tox-docs-static description: | Promote content to static.openstack.org to /srv/static/uc final: true allowed-projects: - openstack/governance-uc vars: static_target: uc - job: name: promote-governance-website parent: base-promote-tox-docs-static description: | Promote content to static.openstack.org to /srv/static/governance final: true allowed-projects: - openstack/governance-website vars: static_target: governance - job: name: promote-security parent: base-promote-tox-docs-static description: | Promote content to static.openstack.org to /srv/static/security final: true allowed-projects: - openstack/ossa vars: static_target: security - job: name: promote-openstack-manuals description: | Promote content fron build-openstack-manuals job and publishes it on docs.openstack.org website. parent: opendev-promote-docs-base final: true timeout: 2700 allowed-projects: - openstack/openstack-manuals - openstack/security-doc - openstack/training-guides vars: write_root_marker: false download_artifact_job: build-tox-manuals-publishdocs secrets: - secret: afsdocs_secret-openstack-manuals name: afs pass-to-parent: true - job: name: promote-openstack-manuals-lang description: | Promote content fron build-openstack-manuals-lang job and publishes it on docs.openstack.org website. parent: opendev-promote-docs-base final: true allowed-projects: - openstack/openstack-manuals - openstack/security-doc - openstack/training-guides vars: write_root_marker: false download_artifact_job: build-tox-manuals-publishlang secrets: - secret: afsdocs_secret-openstack-manuals name: afs pass-to-parent: true - job: name: promote-openstack-manuals-developer description: | Promote content fron build-openstack-manuals job and publishes it on developer.openstack.org website. parent: opendev-promote-docs-base final: true allowed-projects: - openstack/api-site vars: write_root_marker: false download_artifact_job: build-tox-manuals-publishdocs secrets: - secret: afsdeveloper_secret-openstack-manuals name: afs pass-to-parent: true - job: name: promote-api-guide parent: opendev-promote-docs-base description: | Publish api-guide document to https://docs.openstack.org/api-guide. This job is run in a promote pipeline to publish documents built in the gate pipeline. # We only publish the master branch, so no need to run # for changes on other branches. branches: master final: true run: playbooks/api-jobs/promote.yaml vars: api_path: api-guide download_artifact_job: build-openstack-api-guide roles: - zuul: zuul/zuul-jobs - zuul: openstack/openstack-zuul-jobs secrets: - secret: afsdocs_secret name: afs - job: name: promote-api-ref parent: opendev-promote-docs-base description: | Publish api-ref document to https://docs.openstack.org/api-ref. This job is run in a promote pipeline to publish documents built in the gate pipeline. # We only publish the master branch, so no need to run # for changes on other branches. branches: master final: true run: playbooks/api-jobs/promote.yaml vars: api_path: api-ref download_artifact_job: build-openstack-api-ref roles: - zuul: zuul/zuul-jobs - zuul: openstack/openstack-zuul-jobs secrets: - secret: afsdocs_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: zuul/zuul-jobs - zuul: openstack/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: promote-deploy-guide parent: opendev-promote-docs-base description: | Promote content from build-openstack-deploy-guide. Publish the results of the build-openstack-deploy-guide job to /afs/.openstack.org/docs/deploy-guide/{{ 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 vars: download_artifact_job: build-openstack-deploy-guide secrets: - secret: afsdocs_secret-deploy-guide name: afs pass-to-parent: true - 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 protected: true 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 protected: true 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 protected: true - job: name: build-wheel-mirror-base abstract: true description: | Base job for building wheels published in 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 roles: - zuul: opendev/system-config allowed-projects: - openstack/requirements - 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 pre-run: playbooks/openafs-client/setup.yaml 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. pre-run: playbooks/openafs-client/setup.yaml 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. pre-run: playbooks/openafs-client/setup.yaml 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. pre-run: playbooks/openafs-client/setup.yaml 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. pre-run: playbooks/openafs-client/setup.yaml 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: [] # Build and publish jobs for the wheel mirror only run against # master. Restrict the release job to master as well to avoid zuul # config errors due to stable branches not being able to run their # job depenendencies. branches: master 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: trigger-readthedocs-webhook description: | Trigger readthedocs to rebuild documentation Note this job requires some external setup. #. add the ``openstackci`` user as an admin to your RTD project #. generate a webhook URL via the "Integrations" dashboard page #. provide the ``id`` from that URL in a ``rtd_webhook_id`` variable You probably do not want to use this job directly, but rather include the `docs-on-readthedocs template `__ run: playbooks/publish/trigger-rtd.yaml post-review: true final: true secrets: - rtd_credentials - 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/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. roles: - zuul: openstack/openstack-zuul-jobs pre-run: playbooks/translation/pre.yaml run: playbooks/translation/upstream-translation-update.yaml post-run: - playbooks/translation/post.yaml - playbooks/publish/openstack-artifacts.yaml semaphore: translations protected: true vars: fileserver_leading_path: translation-source constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' required-projects: - openstack/horizon - openstack/requirements # Zanata-cli needs Java 8 and will fail with newer Java, Bionic uses Java 11 # This fails Zanata up to version 4.6.2 (current release in March 2019). nodeset: ubuntu-xenial 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. roles: - zuul: openstack/openstack-zuul-jobs pre-run: playbooks/translation/pre.yaml run: playbooks/translation/propose-translation-update.yaml post-run: playbooks/translation/post.yaml vars: constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' semaphore: translations protected: true required-projects: - openstack/horizon - openstack/requirements # Zanata-cli needs Java 8 and will fail with newer Java, Bionic uses Java 11 # This fails Zanata up to version 4.6.2 (current release in March 2019). nodeset: ubuntu-xenial 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-opensuse-15 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 15.0. nodeset: opensuse-150 - 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