blob: 45042c125b70ccbb31501ebfca859f6684d0f75c [file] [log] [blame]
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Tox global configuration
#
[tox]
envlist = py{37,38,39,310,311}-{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 = 2.0.1
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