Fix: Rename tox job and remove pre-commit
[releng/global-jjb.git] / tox.ini
1 [tox]
2 minversion = 1.6
3 envlist =
4   ensure-documented,
5   jjb,
6   jjb-compare-xml,
7   jjb-latest,
8   jjb-version,
9   license,
10   bashate,
11   pre-commit
12 skipsdist = True
13
14 [testenv:docs]
15 basepython = python3
16 deps = -rrequirements.txt
17 commands =
18     sphinx-build -W -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html
19
20 [testenv:ensure-documented]
21 allowlist_externals =
22     ./ensure-documented.sh
23 commands =
24     ./ensure-documented.sh
25
26 [testenv:jjb]
27 basepython = python3
28 deps =
29     jenkins-job-builder==6.0.0
30 commands =
31     jenkins-jobs -l DEBUG test --recursive -o {toxinidir}/archives/job-configs {toxinidir}/jjb:{toxinidir}/.jjb-test
32
33 [testenv:jjb-compare-xml]
34 basepython = python3
35 deps =
36     jenkins-job-builder
37 allowlist_externals =
38     ./jjb-compare-xml.sh
39 commands =
40     ./jjb-compare-xml.sh
41
42 [testenv:jjb-latest]
43 basepython = python3
44 deps =
45     jenkins-job-builder
46 commands =
47     jenkins-jobs -l DEBUG test --recursive -o {toxinidir}/archives/job-configs {toxinidir}/jjb:{toxinidir}/.jjb-test
48
49 [testenv:jjb-version]
50 basepython = python3
51 commands = python {toxinidir}/check_jjb_version.py
52
53 [testenv:license]
54 deps = lftools
55 commands = lftools license check-dir -r '.+' shell
56
57 [testenv:pre-commit]
58 basepython = python3
59 allowlist_externals =
60     /bin/sh
61 deps =
62     pre-commit
63 passenv = HOME
64 commands =
65     pre-commit run --all-files --show-diff-on-failure
66     /bin/sh -c 'if ! git config --get user.name > /dev/null; then \
67         git config --global --add user.name "CI"; \
68         touch .git/REMOVE_USERNAME; fi'
69     /bin/sh -c 'if ! git config --get user.email > /dev/null; then \
70         git config --global --add user.email "ci@example.org"; \
71         touch .git/REMOVE_USEREMAIL; fi'
72     /bin/sh -c "if [ -f .git/COMMIT_EDITMSG ]; then \
73         cp .git/COMMIT_EDITMSG .git/COMMIT_MSGTOX; else \
74         git log HEAD -n1 | tail -n +5 | cut -c 5- > .git/COMMIT_MSGTOX; fi"
75     pre-commit run gitlint --hook-stage commit-msg --commit-msg-filename .git/COMMIT_MSGTOX
76     /bin/sh -c "rm -f .git/COMMIT_MSGTOX"
77     /bin/sh -c "if [ -f .git/REMOVE_USERNAME ]; then \
78         git config --global --unset user.name; \
79         rm -f .git/REMOVE_USERNAME; fi"
80     /bin/sh -c "if [ -f .git/REMOVE_USEREMAIL ]; then \
81         git config --global --unset user.email; \
82         rm -f .git/REMOVE_USEREMAIL; fi"
83
84 [testenv:bashate]
85 basepython = python3
86 deps =
87     bashate
88 allowlist_externals = find
89                       sh
90 setenv =
91     RULES_IGNORED = E001,E002,E003,E004,E005,E007,E008,E009,E010,E011,E012,E013,E014,E015,E016,E017,E018,E019,E020,E021,E022,E023,E024,E025,E026,E027,E028,E029,E030,E031,E032,E033,E034,E035,E036,E037,E038,E039,E040,E041,E042,E043,E044
92 #RULES_IGNORED = `seq -s',E' -w 0 100| cut -d, -f2-6,8-45)`
93 commands =
94     # forbid lines > 120 char
95     sh -c "find . -not -path '*/\.*' -name '*.sh' -exec bashate -e E006 -i $RULES_IGNORED --max-line-length 120 \{\} +"
96     # perform bashate and warn lines > 80 char
97     #find . -not -path '*/\.*' -name *.sh -exec bashate  \{\} +
98     #The option --max-line-length 80 is used by default.
99
100 #########
101 # Tools #
102 #########
103
104 [testenv:jenkins-jobs]
105 deps =
106     jenkins-job-builder{env:JJB_VERSION_OP:~=}{env:JJB_VERSION:6.0.0}
107 commands =
108     jenkins-jobs {posargs:--help}
109
110 [testenv:lftools]
111 deps = lftools{env:LFTOOLS_VERSION_OP:~=}{env:LFTOOLS_VERSION:0.13.0}
112 commands = lftools {posargs:--help}
113
114 [testenv:openstack]
115 deps = python-openstackclient{env:OPENSTACK_VERSION_OP:~=}{env:OPENSTACK_VERSION:3.15.0}
116 commands = openstack {posargs:--help}
117
118 [testenv:reno]
119 deps = reno{env:RENO_VERSION_OP:~=}{env:RENO_VERSION:2.11.2}
120 commands = reno {posargs:--help}