# 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-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/pti-python-tarball/pre.yaml run: playbooks/pti-python-tarball/run.yaml post-run: - playbooks/pti-python-tarball/post.yaml required-projects: - name: openstack/requirements secrets: - gpg_key - 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). 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 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 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). 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: publish-openstack-tox-docs-direct parent: publish-openstack-tox-docs-base description: | Publish the results of the openstack-tox-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-contributor-guide parent: publish-openstack-tox-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-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: 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: publish-openstack-specs parent: publish-openstack-tox-docs-base description: | Publish OpenStack specs to static.openstack.org specs/{{ zuul.project.short_name }} final: true post-run: playbooks/publish/openstack-specs.yaml required-projects: - name: openstack/requirements roles: - zuul: zuul/zuul-jobs - zuul: openstack/openstack-zuul-jobs vars: tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' secrets: - site_specs - 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/project-config roles: - zuul: zuul/zuul-jobs - zuul: openstack/openstack-zuul-jobs vars: tox_envlist: specs secrets: - site_specs - job: name: publish-tox-docs-infra parent: publish-openstack-tox-docs-base description: | Publish the results of the tox 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 }}" bindep_profile: compile doc - 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: publish-infra-manual parent: publish-openstack-tox-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-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: zuul/zuul-jobs - zuul: openstack/openstack-zuul-jobs vars: tox_envlist: publish secrets: - site_specs - 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/project-config roles: - zuul: zuul/zuul-jobs - zuul: openstack/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 # 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: 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 vars: static_target: "{{ zuul.project.short_name }}" - job: name: publish-governance-sigs parent: base-publish-tox-docs-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-tox-docs-static description: | Publish content to static.openstack.org to /srv/static/tc final: true allowed-projects: - openstack/governance vars: static_target: tc - job: name: publish-governance-uc parent: base-publish-tox-docs-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-tox-docs-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-tox-docs-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. nodeset: ubuntu-bionic pre-run: playbooks/project-config/pre-tox.yaml run: playbooks/project-config/run-tox.yaml roles: - zuul: zuul/zuul-jobs - zuul: openstack/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 - playbooks/publish/openstack-afs.yaml final: true allowed-projects: - openstack/api-site vars: afs_subpath: "" secrets: - secret: afsdeveloper_secret name: afs - job: name: publish-openstack-manuals-lang parent: publish-openstack-manuals-base post-run: - playbooks/publish/manuals.yaml - playbooks/publish/openstack-afs.yaml final: true allowed-projects: - openstack/openstack-manuals - openstack/security-doc vars: tox_envlist: publishlang afs_subpath: "" secrets: - secret: afsdocs_secret name: afs - job: name: publish-openstack-manuals-developer-lang parent: publish-openstack-manuals-base post-run: - playbooks/publish/manuals.yaml - playbooks/publish/openstack-afs.yaml final: true allowed-projects: - openstack/api-site vars: tox_envlist: publishlang afs_subpath: "" secrets: - secret: afsdeveloper_secret name: afs - job: name: publish-api-tox-docs-base description: | Base job for publishing api-guide and api-ref jobs to developer site. # We only publish the master branch, so no need to run # for changes on other branches. branches: master 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/api-docs.yaml required-projects: - name: openstack/requirements roles: - zuul: zuul/zuul-jobs - zuul: openstack/openstack-zuul-jobs vars: bindep_profile: compile doc secrets: - secret: afsdeveloper_secret name: afs - job: name: publish-api-guide parent: publish-api-tox-docs-base description: | Publish api-guide document to https://developer.openstack.org/api-guide. final: true vars: sphinx_build_dir: api-guide/build tox_envlist: api-guide api_path: api-guide - job: name: publish-api-ref parent: publish-api-tox-docs-base description: | Publish api-ref document to https://developer.openstack.org/api-ref. final: true vars: sphinx_build_dir: api-ref/build tox_envlist: api-ref api_path: api-ref - 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: publish-deploy-guide parent: publish-openstack-tox-docs-base description: | Publish deploy-guide document to https://docs.openstack.org/project-deploy-guide/ post-run: - playbooks/sphinx/post.yaml vars: afs_subpath: "/project-deploy-guide/{{ zuul.project.short_name }}" sphinx_build_dir: deploy-guide/build tox_envlist: deploy-guide - 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 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: [] 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 vars: fileserver_leading_path: translation-source constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' required-projects: - 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 required-projects: - 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-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