1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
[tox]
envlist =
lint,
jsonnet-{check,lint,fix},
jsonnet-bundler-{install,update},
promql-query-{test,lint},
alerts-{fix,check,lint,test}
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
jsonnetfmt
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 =
behave tests_dashboards/features
[testenv:alerts-{fix,check,lint,test}]
deps =
-rrequirements-alerts.txt
pytest
depends = grafonnet-check
allowlist_externals =
promtool
jsonnet
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
|