[tox] envlist = lint, jsonnet-{check,lint,fix}, jsonnet-bundler-{install,update}, promql-query-{test,lint}, alerts-check skipsdist = true [testenv:jsonnet-bundler-{install,update}] allowlist_externals = jb description = install: Install the jsonnet dependencies update: Update the jsonnet dependencies commands = install: jb install update: jb update [testenv:jsonnet-{check,fix,lint}] basepython = python3 allowlist_externals = find jb jsonnet jsonnetfm sh description = check: Ensure that auto-generated files matches the current version fix: Update generated files from jsonnet file with latest changes lint: Test if jsonnet files are linted (without any update) deps = -rrequirements-grafonnet.txt depends = jsonnet-bundler-install commands = check: sh test-jsonnet.sh lint: ./lint-jsonnet.sh --test fix: jsonnet -J vendor -m dashboards_out dashboards.jsonnet [testenv:lint] description = Run python linters deps = -rrequirements-lint.txt setenv = commands = pylint --rcfile=.pylintrc tests_dashboards mypy tests_dashboards isort tests_dashboards [testenv:promql-query-test] description = lint: Run promtool check on grafana queries test: Run promtool unit testing on grafana queries. deps = -rrequirements-lint.txt depends = grafonnet-check setenv = allowlist_externals = promtool commands = python -m doctest tests_dashboards/util.py behave tests_dashboards/features [testenv:alerts-{fix,check,lint}] deps = -rrequirements-alerts.txt pytest depends = grafonnet-check allowlist_externals = promtool commands = fix: jsonnet -J vendor -S alerts.jsonnet -o prometheus_alerts.yml lint: promtool check rules prometheus_alerts.yml test: pytest -rA tests_alerts/test_syntax.py tests_alerts/test_unittests.py python3 ./tests_alerts/validate_rules.py