#
# 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 = 01a913bfe9ce088e283aa1568e2577852b014fb1
    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
