# Shared jobs that are generally applicable to everyone # Assumes a 'base' job defined elsewhere - job: name: unittests abstract: true description: | Perform setup common to all unit test jobs. This performs basic host and general project setup tasks common to all types of unit test jobs. pre-run: playbooks/unittests/pre.yaml post-run: playbooks/unittests/post.yaml - job: name: tox parent: unittests description: | Base job containing setup and teardown for tox-based test jobs. This performs basic host and general project setup tasks common to all tox unit test jobs. Responds to these variables: .. zuul:jobvar:: tox_envlist Use the specified tox environments (``ALL`` selects all). .. zuul:jobvar:: tox_environment List of user defined environmental variables to pass to bash shell. .. zuul:jobvar:: tox_extra_args String containing extra arguments to append to the tox command line. .. zuul:jobvar: tox_constraints_file Path to a pip constraints file. Will be provided to tox in the UPPER_CONSTRAINTS_FILE environment variable if it exists. .. zuul:jobvar: tox_install_siblings :default: true Override tox requirements that have corresponding zuul git repos on the node by installing the git versions into the tox virtualenv. run: playbooks/tox/run.yaml pre-run: playbooks/tox/pre.yaml post-run: playbooks/tox/post.yaml vars: tox_environment: NOSE_WITH_HTML_OUTPUT: 1 NOSE_HTML_OUT_FILE: nose_results.html NOSE_WITH_XUNIT: 1 - job: name: tox-py27 parent: tox description: | Run unit tests for a Python project under cPython version 2.7. Uses tox with the ``py27`` environment. vars: tox_envlist: py27 - job: name: tox-py34 parent: tox description: | Run unit tests for a Python project under cPython version 3.4. Uses tox with the ``py34`` environment. vars: tox_envlist: py34 - job: name: tox-py35 parent: tox description: | Run unit tests for a Python project under cPython version 3.5. Uses tox with the ``py35`` environment. vars: tox_envlist: py35 - job: name: tox-py36 parent: tox description: | Run unit tests for a Python project under cPython version 3.6. Uses tox with the ``py36`` environment. vars: tox_envlist: py36 - job: name: tox-docs # This is not parented to tox since we do not need # the roles from its parent unittests. description: | Run documentation unit tests. Uses tox with the ``docs`` environment. vars: tox_envlist: docs bindep_profile: compile doc run: playbooks/tox/run.yaml pre-run: - playbooks/tox-docs/pre.yaml - playbooks/tox/pre.yaml post-run: - playbooks/tox/docs-post.yaml - playbooks/tox/post.yaml success-url: html/ - job: name: tox-linters parent: tox description: | Runs code linting tests. Uses tox with the ``linters`` environment. vars: tox_envlist: linters - job: name: tox-pep8 parent: tox description: | Runs code pep8 tests. Uses tox with the ``pep8`` environment. vars: tox_envlist: pep8 - job: name: tox-cover parent: tox description: | Run code coverage tests. Uses tox with the ``cover`` environment. post-run: playbooks/tox/cover-post.yaml vars: tox_envlist: cover - job: name: tox-bashate parent: tox description: | Run bashate tests. Uses tox with the ``bashate`` environment. vars: tox_envlist: bashate - job: name: tox-nodejs-npm parent: tox description: | Run tests using tox but with the javascript toolchain installed and available as well. A combination of the tox and nodejs-npm jobs. By default will run npm before running the tox environment listed. Responds to these variables: .. zuul:jobvar:: tox_envlist Use the specified tox environments (``ALL`` selects all). .. zuul:jobvar:: tox_environment List of user defined environmental variables to pass to bash shell. .. zuul:jobvar:: tox_extra_args String containing extra arguments to append to the tox command line. .. zuul:jobvar: tox_constraints_file Path to a pip constraints file. Will be provided to tox in the UPPER_CONSTRAINTS_FILE environment variable if it exists. .. zuul:jobvar: tox_install_siblings :default: true Override tox requirements that have corresponding zuul git repos on the node by installing the git versions into the tox virtualenv. .. zuul:jobvar:: npm_command :default: build Command to pass to npm. .. zuul:jobvar:: node_version :default: 6 The version of Node to use. .. zuul:jobvar: javascript_content_dir :default: dist Directory, relative to zuul_work_dir, holding build content. .. zuul:jobvar: zuul_work_dir :default: {{ zuul.project.src_dir }} Path to operate in. pre-run: playbooks/javascript/pre.yaml run: playbooks/tox/npm.yaml post-run: playbooks/javascript/post.yaml vars: npm_command: build - job: name: build-python-release description: | Build a source tarball and a bdist wheel for uploading. run: playbooks/python/release.yaml post-run: playbooks/python/tarball-post.yaml - job: name: python-upload-pypi parent: build-python-release description: | Generate and upload a python source tarball and binary wheel Requires a variable ``pypi_info`` be set which is a dict containing at least a ``username`` and ``password`` attribute. post-run: playbooks/python/upload-pypi.yaml - job: name: build-sphinx-docs description: | Build documentation using Sphinx Additional requirements can be provided in a project in either the file ``doc/requirements.txt`` or ``test-requirements.txt``. (The first file found in that order will be the one used) Non-python distro requirements can be specified in ``bindep.txt`` using the ``doc`` tag. Runs `whereto https://docs.openstack.org/whereto/latest/` after the build if it is installed. Responds to these variables: .. zuul:jobvar:: constraints_file Optional path to a pip constraints file for installing python libraries. .. zuul:jobvar:: sphinx_python :default: python2 Version of python to use, either ``python2`` or ``python3``. .. zuul:jobvar:: zuul_work_dir :default: {{ zuul.project.src_dir }} Directory to operate in. success-url: html/ pre-run: playbooks/sphinx/pre.yaml run: playbooks/sphinx/run.yaml post-run: playbooks/sphinx/post.yaml - job: name: build-reno-releasenotes description: | Build releasenotes using reno Additional requirements can be provided in a project in either the file ``doc/requirements.txt`` or ``test-requirements.txt``. (The first file found in that order will be the one used) Non-python distro requirements can be specified in ``bindep.txt`` using the ``doc`` tag. Responds to these variables: .. zuul:jobvar:: constraints_file Optional path to a pip constraints file for installing python libraries. .. zuul:jobvar:: sphinx_python :default: python2 Version of python to use, either ``python2`` or ``python3``. .. zuul:jobvar:: zuul_work_dir :default: {{ zuul.project.src_dir }} Directory to operate in. success-url: html/ # Release notes always build on master. override-checkout: master pre-run: playbooks/releasenotes/pre.yaml run: playbooks/releasenotes/run.yaml post-run: playbooks/releasenotes/post.yaml files: - ^releasenotes/.* - bindep.txt - doc/requirements.txt - test-requirements.txt - tox.ini - job: name: trigger-readthedocs description: Send a trigger to the readthedocs url to tell it to build docs nodeset: nodes: [] run: playbooks/python/readthedocs.yaml - job: name: multinode abstract: true description: | Do additional setup needed for multi-node jobs such as setting up overlay networks and setting up known-hosts and ssh keys pre-run: playbooks/multinode/pre.yaml - job: name: nodejs-npm parent: unittests description: | Base job for javascript operations Responds to these variables: .. zuul:jobvar:: npm_command :default: build Command to pass to npm. .. zuul:jobvar:: node_version :default: 6 The version of Node to use. .. zuul:jobvar: zuul_work_dir :default: {{ zuul.project.src_dir }} Path to operate in. .. zuul:jobvar: javascript_content_dir :default: dist Directory, relative to zuul_work_dir, holding build content. pre-run: playbooks/javascript/pre.yaml run: playbooks/javascript/run.yaml post-run: playbooks/javascript/post.yaml vars: npm_command: build - job: name: build-javascript-tarball parent: nodejs-npm description: | Build a source tarball for a Javascript project Responds to these variables: .. zuul:jobvar:: node_version :default: 6 The version of Node to use. .. zuul:jobvar: zuul_work_dir :default: {{ zuul.project.src_dir }} Path to operate in. .. zuul:jobvar: javascript_content_dir :default: dist Directory, relative to zuul_work_dir, holding build content. vars: npm_command: pack - job: name: build-javascript-content parent: nodejs-npm description: | Build javascript web content as it should be deployed. Responds to these variables: .. zuul:jobvar:: npm_command :default: build Command to pass to npm. .. zuul:jobvar:: node_version :default: 6 The version of Node to use. .. zuul:jobvar: zuul_work_dir :default: {{ zuul.project.src_dir }} Path to operate in. .. zuul:jobvar: javascript_content_dir :default: dist Directory, relative to zuul_work_dir, holding build content. success-url: npm/html/ - job: name: nodejs-npm-run-test parent: nodejs-npm description: | Run test using nodejs. This test also starts Xvfb for run time tests. Responds to these variables: .. zuul:jobvar:: node_version :default: 6 The version of Node to use. .. zuul:jobvar: zuul_work_dir :default: {{ zuul.project.src_dir }} Path to operate in. .. zuul:jobvar: javascript_content_dir :default: dist Directory, relative to zuul_work_dir, holding build content. pre-run: playbooks/javascript/pre-test.yaml vars: npm_command: test - job: name: nodejs-npm-run-lint parent: nodejs-npm description: | Run lint using nodejs. Responds to these variables: .. zuul:jobvar:: node_version :default: 6 The version of Node to use. .. zuul:jobvar: zuul_work_dir :default: {{ zuul.project.src_dir }} Path to operate in. .. zuul:jobvar: javascript_content_dir :default: dist Directory, relative to zuul_work_dir, holding build content. vars: npm_command: lint - job: name: nodejs-npm-run-docs parent: nodejs-npm description: | Run docs using nodejs. Responds to these variables: .. zuul:jobvar:: node_version :default: 6 The version of Node to use. .. zuul:jobvar: zuul_work_dir :default: {{ zuul.project.src_dir }} Path to operate in. post-run: playbooks/tox/docs-post.yaml success-url: html/ vars: npm_command: docs - job: name: run-test-command parent: unittests description: | Run simple command as test. To use this, set the ``test_command`` variable. run: playbooks/run-test-command/run.yaml vars: test_command: "exit 1"