| # |
| # Tox global configuration |
| # |
| [tox] |
| envlist = py{37,38,39,310}-{bst-fixed,bst-master} |
| skip_missing_interpreters = true |
| |
| # |
| # Defaults for all environments |
| # |
| # Anything specified here is inherited by the sections |
| # |
| [testenv] |
| commands = |
| bst --version |
| pytest --basetemp {envtmpdir} {posargs} |
| deps = |
| -rrequirements/test-requirements.txt |
| -rrequirements/plugin-requirements.txt |
| git+https://github.com/apache/buildstream@{env:BST_VERSION} |
| |
| passenv = |
| ARTIFACT_CACHE_SERVICE |
| BST_FORCE_BACKEND |
| BST_FORCE_SANDBOX |
| GI_TYPELIB_PATH |
| INTEGRATION_CACHE |
| http_proxy |
| HTTP_PROXY |
| https_proxy |
| HTTPS_PROXY |
| no_proxy |
| NO_PROXY |
| PYTEST_* |
| REMOTE_EXECUTION_SERVICE |
| SOURCE_CACHE_SERVICE |
| SSL_CERT_FILE |
| |
| # |
| # These keys are not inherited by any other sections |
| # |
| setenv = |
| py{37,38,39,310}: XDG_CACHE_HOME = {envtmpdir}/cache |
| py{37,38,39,310}: XDG_CONFIG_HOME = {envtmpdir}/config |
| py{37,38,39,310}: XDG_DATA_HOME = {envtmpdir}/share |
| !master: BST_VERSION = f122efc99698ca3e2d7f087d934b283710088643 |
| master: BST_VERSION = master |
| |
| whitelist_externals = |
| py{37,38,39,310}: |
| mv |
| mkdir |
| |
| # |
| # Code formatters |
| # |
| [testenv:format] |
| skip_install = True |
| deps = |
| black==22.3.0 |
| commands = |
| black {posargs: src tests setup.py} |
| |
| # |
| # Code format checkers |
| # |
| [testenv:format-check] |
| skip_install = True |
| deps = |
| black==22.3.0 |
| commands = |
| black --check --diff {posargs: src tests setup.py} |
| |
| # |
| # Running linters |
| # |
| [testenv:lint] |
| commands_pre = |
| # Build C extensions to allow Pylint to analyse them |
| {envpython} setup.py build_ext --inplace |
| |
| commands = |
| pylint {posargs: buildstream_plugins tests setup.py} |
| |
| # |
| # Running static type checkers |
| # |
| [testenv:mypy] |
| skip_install = True |
| commands = |
| mypy {posargs} |
| deps = |
| mypy==0.910 |
| types-protobuf |
| types-python-dateutil |
| types-setuptools |
| types-ujson |
| -rrequirements/plugin-requirements.txt |
| -rrequirements/test-requirements.txt |
| -rrequirements/mypy-requirements.txt |
| git+https://github.com/apache/buildstream@{env:BST_VERSION} |
| |
| # |
| # Building documentation |
| # |
| [testenv:docs] |
| commands = |
| make -C doc |
| # sphinx_rtd_theme < 0.4.2 breaks search functionality for Sphinx >= 1.8 |
| deps = |
| sphinx >= 1.8.5 |
| sphinx_rtd_theme >= 0.4.2 |
| -rrequirements/plugin-requirements.txt |
| git+https://github.com/apache/buildstream@{env:BST_VERSION} |
| passenv = |
| BST_FORCE_SESSION_REBUILD |
| BST_SOURCE_CACHE |
| HOME |
| LANG |
| LC_ALL |
| whitelist_externals = |
| make |
| |
| |
| # |
| # Publish a release, make sure to update the version in setup.py first |
| # |
| [testenv:release] |
| skip_install = true |
| commands = |
| python3 setup.py sdist bdist_wheel |
| twine upload -r pypi dist/* |
| deps = |
| twine |
| wheel |
| passenv = |
| TWINE_USERNAME |
| TWINE_PASSWORD |