56f6938968
It's a common desire to be able to have a job that runs unittests against the git checkout of another repository, but getting the tox environment into that shape is a bunch of extra work. Now that we have a defined place where repos go and they're always on the build node, we can look in the source dir for git repos that contain python packages and ask setup.py for the name of the python package they provide. We can then see what packages tox decided to install for this environment, see if we have any matching ones in the source code repos we've put on disk and if so we can re-install those depends from the source location. That way we can cause a tox job to use a second repo for cross-repo unittesting simply by adding that project to required_projects. Add a flag to disable the behavior ... although the easiest way to disable the behavior is to just not list other projects in required_projects. Change-Id: Ia5250c11b1d73baaa70ea1cef7ea1ba4d5bab821 Story: 2001136 Task: 4852
159 lines
3.9 KiB
YAML
159 lines
3.9 KiB
YAML
# Shared jobs that are generally applicable to everyone
|
|
# Assumes a 'base' job defined elsewhere
|
|
|
|
- job:
|
|
name: unittests
|
|
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
|
|
post-run: playbooks/unittests/post
|
|
|
|
- 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_upper_constraints_file
|
|
|
|
Path to an upper constraints file. Will be provided to tox via
|
|
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
|
|
pre-run: playbooks/tox/pre
|
|
post-run: playbooks/tox/post
|
|
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-docs
|
|
parent: tox
|
|
description: |
|
|
Run documentation unit tests.
|
|
|
|
Uses tox with the ``docs`` environment.
|
|
vars:
|
|
tox_envlist: docs
|
|
post-run: playbooks/tox/docs-post
|
|
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.
|
|
vars:
|
|
tox_envlist: cover
|
|
|
|
- job:
|
|
name: python-sdist
|
|
description: |
|
|
Build a source tarball and wheel for uploading
|
|
run: playbooks/python/sdist.yaml
|
|
post-run: playbooks/python/tarball-post
|
|
|
|
- job:
|
|
name: python-upload-pypi
|
|
parent: python-sdist
|
|
description: |
|
|
Generate a 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
|
|
|
|
- job:
|
|
name: trigger-readthedocs
|
|
description:
|
|
Send a trigger to the readthedocs url to tell it to build docs
|
|
nodes: []
|
|
run: playbooks/python/readthedocs
|
|
|
|
- job:
|
|
name: multinode
|
|
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
|