[tox] envlist = py37 isolated_build = true skipsdist=True toxworkdir={toxinidir}/.tox [testenv] whitelist_externals = sh docker-compose commands_pre = docker-compose up --detach mysql redis rabbitmq pip install -r {toxinidir}/requirements/dev.txt pip install -r {toxinidir}/requirements/common.txt commands = {toxinidir}/manage.py check sh -c "SITE_URL=https://treeherder.dev TREEHERDER_DEBUG=False ./manage.py check --deploy --fail-level WARNING" # Running slow tests (DB required) pytest tests/ --runslow commands_post = # This is to deal with running the containers with --detached docker-compose down [testenv:linters] commands_pre = pip install -r {toxinidir}/requirements/dev.txt pip install -r {toxinidir}/requirements/common.txt commands = pip check {toxinidir}/lints/queuelint.py # This ensures that we don't loose the ability of installing locally pre-commit checks pre-commit run --all-files commands_post = [testenv:docs] commands_pre = pip install poetry poetry install --extras "docs" commands = mkdocs build commands_post = # This build is configured to catch issues on PRs that would only be detected as # part of Heroku's build step when the code has already been merged to master. # The step ./bin/post_compile requires the output of `yarn build`, thus, we need # to build both the JS and Python builds # In Heroku, the JS dev dependencies are *not* installed because the env variable # YARN_PRODUCTION is detected by the buildpack, however, yarn does not care about # that and needs an explicit flag (`--prod`) # https://devcenter.heroku.com/articles/nodejs-support#only-installing-dependencies # NODE_ENV=production is implicit as part of the command `yarn build` with `--mode production` [testenv:heroku] whitelist_externals = yarn post_compile commands_pre = pip install -r requirements.txt yarn install --prod commands = yarn heroku-postbuild ./manage.py collectstatic --noinput # This generates the revision and does the Brotly/Gzip compression {toxinidir}/./bin/post_compile commands_post = [testenv:docker] whitelist_externals= docker-compose commands_pre = docker-compose build commands = docker-compose run -e TREEHERDER_DEBUG=False backend bash -c "pytest --cov --cov-report=xml tests/ --runslow" [flake8] per-file-ignores = treeherder/model/models.py:E402