aboutsummaryrefslogtreecommitdiffstats
path: root/tox.ini
blob: 4269f66b09cea5cee51f865f8aedf75024e3067b (plain)
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
[tox]
minversion = 1.6
envlist =
 docs,
 docs-linkcheck,
 gitlint,
 checkbashisms,
 pre-commit,
skipsdist=true

[doc8]
ignore-path-errors=docs/helm-search.txt;D001

[testenv:doc8]
basepython = python3.8
deps =
    -r{toxinidir}/requirements.txt
    -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt
    -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt
commands =
 - doc8 docs/

[testenv:docs]
basepython = python3.8
deps =
    -r{toxinidir}/requirements.txt
    -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt
    -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt
allowlist_externals = sudo
commands =
    sudo apt install graphviz
    sphinx-build -q -W -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html

[testenv:docs-linkcheck]
basepython = python3.8
deps =
    -r{toxinidir}/requirements.txt
    -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt
    -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt
allowlist_externals = sudo
commands =
    sudo apt install graphviz
    sphinx-build -q -W -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck

[testenv:spelling]
basepython = python3.8
allowlist_externals =
    wget
    sudo
deps =
    -r{toxinidir}/requirements.txt
    -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt
    -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt
changedir={toxinidir}/docs
commands =
    sudo apt install graphviz
    wget -nv https://git.onap.org/doc/plain/docs/spelling_wordlist.txt -O spelling_wordlist.txt
    sphinx-build -b spelling -d {envtmpdir}/doctrees . _build/spelling

[testenv:gitlint]
basepython = python3.8
deps =
    -r{toxinidir}/requirements.txt
    -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt
    -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt
commands =
  gitlint

[testenv:checkbashisms]
deps =
allowlist_externals =
    {toxinidir}/.ci/check-bashisms.sh
commands =
    {toxinidir}/.ci/check-bashisms.sh

[testenv:shellcheck]
basepython = python3
deps = shellcheck-py
allowlist_externals = find
commands =
    find . -not -path '*/\.*' -name *.sh -exec shellcheck \{\} +

[testenv:autopep8]
basepython = python3.8
deps =
    -r{toxinidir}/requirements.txt
    -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt
    -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt
commands =
    autopep8 --max-line-length 120 --in-place --recursive kubernetes/ TOSCA/ docs/

[testenv:pylint]
basepython = python3.8
deps =
    -r{toxinidir}/requirements.txt
    -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt
    -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt
allowlist_externals = find
commands =
    find kubernetes/ TOSCA/ docs/ -name *.py -exec pylint --max-line-length=120 --disable=missing-docstring --method-rgx="(([a-z_][a-zA-Z0-9_]{2,})|(_[a-z0-9_]*)|(__[a-zA-Z][a-zA-Z0-9_]+__))$" --variable-rgx="[a-zA-Z_][a-zA-Z0-9_]{1,30}$" --reports=y --score=y  --output-format=colorized  \{\} +

[testenv:pre-commit-install]
basepython = python3
deps = pre-commit
commands =
    pre-commit install
    pre-commit install --hook-type commit-msg

[testenv:pre-commit-uninstall]
basepython = python3
deps = pre-commit
commands =
    pre-commit uninstall
    pre-commit uninstall --hook-type commit-msg

[testenv:pre-commit]
basepython = python3
deps = pre-commit
passenv = HOME
commands =
    pre-commit run --all-files --show-diff-on-failure
    pre-commit run gitlint --hook-stage commit-msg --commit-msg-filename .git/COMMIT_EDITMSG
    # Gitlint only proposes a pre-commit configuration for the commit-msg stage but none for the commit stage.
    # Its default arguments --passed and --msg-filename are different from CI recommandations.
    # As a result, the line above is always skipped in jenkins CI since there cannot be a .git/COMMIT_EDITMSG file.
    # A dedicated gitlint profile for CI is proposed above. Also to behave fine locally, this profile must have access
    # to the HOME variable so that Gitlint can retrieve Git user settings.

[testenv:pre-commit-autoupdate]
basepython = python3
deps = pre-commit
commands =
    pre-commit autoupdate