From 2a5822ea8bef7eb68fd0f997df132325f1f37357 Mon Sep 17 00:00:00 2001 From: "James E. Blair" Date: Thu, 27 Jun 2019 13:36:03 -0700 Subject: [PATCH] Split job definitions into multiple files We have too many jobs to put them all in one file; split them up in files which mirror the documentation. Change-Id: Ic44f18085ccf0b561a0f4aa0a4274fe8eb99402c --- zuul.d/docker-jobs.yaml | 31 ++ zuul.d/general-jobs.yaml | 96 ++++ zuul.d/js-jobs.yaml | 196 ++++++++ zuul.d/python-jobs.yaml | 321 ++++++++++++ zuul.d/test-container-roles-jobs.yaml | 28 ++ zuul.yaml | 670 -------------------------- 6 files changed, 672 insertions(+), 670 deletions(-) create mode 100644 zuul.d/docker-jobs.yaml create mode 100644 zuul.d/general-jobs.yaml create mode 100644 zuul.d/js-jobs.yaml create mode 100644 zuul.d/python-jobs.yaml create mode 100644 zuul.d/test-container-roles-jobs.yaml delete mode 100644 zuul.yaml diff --git a/zuul.d/docker-jobs.yaml b/zuul.d/docker-jobs.yaml new file mode 100644 index 000000000..731385f0f --- /dev/null +++ b/zuul.d/docker-jobs.yaml @@ -0,0 +1,31 @@ +# Jobs listed in docker-jobs.rst. + +- job: + name: build-docker-image + description: | + Build a docker image. + + .. include:: ../../playbooks/docker-image/README.rst + pre-run: playbooks/docker-image/pre.yaml + run: playbooks/docker-image/run.yaml + +- job: + name: upload-docker-image + parent: build-docker-image + description: | + Build and upload a docker image. + + .. include:: ../../playbooks/docker-image/README.rst + .. include:: ../../playbooks/docker-image/credentials.rst + post-run: playbooks/docker-image/upload.yaml + +- job: + name: promote-docker-image + description: | + Retag a previously-uploaded docker image. + + .. include:: ../../playbooks/docker-image/README.rst + .. include:: ../../playbooks/docker-image/credentials.rst + run: playbooks/docker-image/promote.yaml + nodeset: + nodes: [] diff --git a/zuul.d/general-jobs.yaml b/zuul.d/general-jobs.yaml new file mode 100644 index 000000000..dd2dc6b00 --- /dev/null +++ b/zuul.d/general-jobs.yaml @@ -0,0 +1,96 @@ +# Jobs listed in general-jobs.rst. + +- job: + name: dco-license + description: | + A job to validate all new commits have been signed using --signoff. + run: playbooks/dco-license/run.yaml + nodeset: + nodes: [] + +- 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: 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: run-test-command + parent: unittests + description: | + Run simple command as test. + + To use this, set the ``test_command`` variable to a single command or + a list of commands. For complex list of commands, it is recommended to + use a single command that run a proper script. + run: playbooks/run-test-command/run.yaml + vars: + test_command: "exit 1" + +- job: + name: upload-git-mirror + description: | + Mirrors a tested project repository to a remote git server. + + .. zuul:jobvar:: git_mirror_credentials + :type: dict + + This is expected to be a Zuul Secret with these keys: + + .. zuul:jobvar:: user + + SSH user for the remote git repository + + .. zuul:jobvar:: host + + SSH host for the remote git repository + + .. zuul:jobvar:: ssh_key + + Literal private key contents. + Should start with something like ``-----BEGIN RSA PRIVATE KEY-----``. + + .. zuul:jobvar:: host_key + + SSH host key of the remote git server. + Can be obtained with ``ssh-keyscan -H ``. + + .. zuul:jobvar:: git_mirror_repository + + Path of the remote git repository + run: playbooks/upload-git-mirror/run.yaml + +- job: + name: validate-zone-db + parent: base + description: | + Validate zone.db files in project. + + Responds to these variables: + + .. zuul:jobvar:: zone_files + :default: {{ ansible_user_dir }}/{{ zuul.project.src_dir }} + + Search for zone.db files recursively in this directory. + Format should be domain.xyz/zone.db, where the parent + directory is named for the zone described. + + .. zuul:jobvar:: zone_db_list + :default: [] + + Override the default searching above with explicit + domain/path references (see validate-zone-db role) + run: playbooks/validate-zone-db/run.yaml diff --git a/zuul.d/js-jobs.yaml b/zuul.d/js-jobs.yaml new file mode 100644 index 000000000..48b4b6d9f --- /dev/null +++ b/zuul.d/js-jobs.yaml @@ -0,0 +1,196 @@ +# Jobs listed in js-jobs.rst. + +- 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: build-javascript-content-tarball + parent: nodejs-npm + description: | + Build an archive of 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. + + .. zuul:jobvar: create_tarball_directory + + Create a tarball with the contents of + create_tarball_directory (relative to zuul_work_dir). + post-run: playbooks/javascript/tarball.yaml + +- 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 diff --git a/zuul.d/python-jobs.yaml b/zuul.d/python-jobs.yaml new file mode 100644 index 000000000..2087bc04f --- /dev/null +++ b/zuul.d/python-jobs.yaml @@ -0,0 +1,321 @@ +- 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 + TOX_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: tox_install_bindep + :default: true + + Whether or not to run the binary dependencies detection and + installation with bindep. + 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-py37 + parent: tox + description: | + Run unit tests for a Python project under cPython version 3.7. + + Uses tox with the ``py37`` environment. + vars: + tox_envlist: py37 + +- 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-molecule + parent: tox + pre-run: playbooks/tox/pre-molecule.yaml + description: | + Runs Ansible molecule testing on a system where docker is available. + + Uses tox with the ``molecule`` environment. + vars: + tox_envlist: molecule + +- 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 + TOX_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 + diff --git a/zuul.d/test-container-roles-jobs.yaml b/zuul.d/test-container-roles-jobs.yaml new file mode 100644 index 000000000..5f8eb0bd1 --- /dev/null +++ b/zuul.d/test-container-roles-jobs.yaml @@ -0,0 +1,28 @@ +# Jobs which test roles listed in container-roles.rst. + +- job: + name: zuul-jobs-test-registry + description: | + Test the intermediate registry roles. + + This job tests changes to the intermediate registry roles. It + is not meant to be used directly but rather run on changes to + roles in the zuul-jobs repo. + files: + - roles/pull-from-intermediate-registry/.* + - roles/push-to-intermediate-registry/.* + - roles/install-docker/.* + - roles/build-docker-image/.* + - roles/run-buildset-registry/.* + - roles/use-buildset-registry/.* + - test-playbooks/registry/.* + run: + test-playbooks/registry/test-registry.yaml + nodeset: + nodes: + - name: intermediate-registry + label: ubuntu-bionic + - name: executor + label: ubuntu-bionic + - name: builder + label: ubuntu-bionic diff --git a/zuul.yaml b/zuul.yaml deleted file mode 100644 index d1fd44fca..000000000 --- a/zuul.yaml +++ /dev/null @@ -1,670 +0,0 @@ -# Shared jobs that are generally applicable to everyone -# Assumes a 'base' job defined elsewhere - -- job: - name: dco-license - description: | - A job to validate all new commits have been signed using --signoff. - run: playbooks/dco-license/run.yaml - nodeset: - nodes: [] - -- 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: build-docker-image - description: | - Build a docker image. - - .. include:: ../../playbooks/docker-image/README.rst - pre-run: playbooks/docker-image/pre.yaml - run: playbooks/docker-image/run.yaml - -- job: - name: upload-docker-image - parent: build-docker-image - description: | - Build and upload a docker image. - - .. include:: ../../playbooks/docker-image/README.rst - .. include:: ../../playbooks/docker-image/credentials.rst - post-run: playbooks/docker-image/upload.yaml - -- job: - name: promote-docker-image - description: | - Retag a previously-uploaded docker image. - - .. include:: ../../playbooks/docker-image/README.rst - .. include:: ../../playbooks/docker-image/credentials.rst - run: playbooks/docker-image/promote.yaml - nodeset: - nodes: [] - -- job: - name: upload-git-mirror - description: | - Mirrors a tested project repository to a remote git server. - - .. zuul:jobvar:: git_mirror_credentials - :type: dict - - This is expected to be a Zuul Secret with these keys: - - .. zuul:jobvar:: user - - SSH user for the remote git repository - - .. zuul:jobvar:: host - - SSH host for the remote git repository - - .. zuul:jobvar:: ssh_key - - Literal private key contents. - Should start with something like ``-----BEGIN RSA PRIVATE KEY-----``. - - .. zuul:jobvar:: host_key - - SSH host key of the remote git server. - Can be obtained with ``ssh-keyscan -H ``. - - .. zuul:jobvar:: git_mirror_repository - - Path of the remote git repository - run: playbooks/upload-git-mirror/run.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 - TOX_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: tox_install_bindep - :default: true - - Whether or not to run the binary dependencies detection and - installation with bindep. - 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-py37 - parent: tox - description: | - Run unit tests for a Python project under cPython version 3.7. - - Uses tox with the ``py37`` environment. - vars: - tox_envlist: py37 - -- 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-molecule - parent: tox - pre-run: playbooks/tox/pre-molecule.yaml - description: | - Runs Ansible molecule testing on a system where docker is available. - - Uses tox with the ``molecule`` environment. - vars: - tox_envlist: molecule - -- 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 - TOX_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: 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: build-javascript-content-tarball - parent: nodejs-npm - description: | - Build an archive of 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. - - .. zuul:jobvar: create_tarball_directory - - Create a tarball with the contents of - create_tarball_directory (relative to zuul_work_dir). - post-run: playbooks/javascript/tarball.yaml - -- 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 to a single command or - a list of commands. For complex list of commands, it is recommended to - use a single command that run a proper script. - run: playbooks/run-test-command/run.yaml - vars: - test_command: "exit 1" - -- job: - name: validate-zone-db - parent: base - description: | - Validate zone.db files in project. - - Responds to these variables: - - .. zuul:jobvar:: zone_files - :default: {{ ansible_user_dir }}/{{ zuul.project.src_dir }} - - Search for zone.db files recursively in this directory. - Format should be domain.xyz/zone.db, where the parent - directory is named for the zone described. - - .. zuul:jobvar:: zone_db_list - :default: [] - - Override the default searching above with explicit - domain/path references (see validate-zone-db role) - run: playbooks/validate-zone-db/run.yaml - -- job: - name: zuul-jobs-test-registry - description: | - Test the intermediate registry roles. - - This job tests changes to the intermediate registry roles. It - is not meant to be used directly but rather run on changes to - roles in the zuul-jobs repo. - files: - - roles/pull-from-intermediate-registry/.* - - roles/push-to-intermediate-registry/.* - - roles/install-docker/.* - - roles/build-docker-image/.* - - roles/run-buildset-registry/.* - - roles/use-buildset-registry/.* - - test-playbooks/registry/.* - run: - test-playbooks/registry/test-registry.yaml - nodeset: - nodes: - - name: intermediate-registry - label: ubuntu-bionic - - name: executor - label: ubuntu-bionic - - name: builder - label: ubuntu-bionic