-
Notifications
You must be signed in to change notification settings - Fork 0
/
tox.ini
165 lines (149 loc) · 5.89 KB
/
tox.ini
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
[tox]
minversion = 1.6
envlist = checkniceness,checksyntax,checkdeletions,checkbuild,checklang,checklinks
skipsdist = True
[testenv]
basepython=python2.7
setenv =
VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/test-requirements.txt
whitelist_externals =
bash
cp
mkdir
rm
rsync
[testenv:venv]
commands = {posargs}
[testenv:checklinks]
commands = openstack-doc-test --check-links {posargs}
[testenv:checkniceness]
commands =
openstack-doc-test --check-niceness {posargs}
flake8
doc8 doc
[testenv:checksyntax]
commands =
openstack-doc-test --check-syntax {posargs}
# Check that .po and .pot files are valid:
bash -c "find doc -type f -regex '.*\.pot?' -print0|xargs -0 -n 1 msgfmt --check-format -o /dev/null"
[testenv:checkdeletions]
commands = openstack-doc-test --check-deletions {posargs}
[testenv:checkbuild]
commands =
# Build first the www pages so that openstack-doc-test creates a link to
# www/www-index.html.
mkdir -p publish-docs/www
python tools/www-generator.py --source-directory www/ --output-directory publish-docs/www/
cp www/www-index.html publish-docs/
rsync -a www/static/ publish-docs/www/
# Build and copy RST Guides
# Build both RST User Guides
{toxinidir}/tools/build-user-guides.sh
# Copy RST user-guide
mkdir -p publish-docs/user-guide/
rsync -a doc/user-guides/build/html/ publish-docs/user-guide/
# Copy RST user-guide-admin
mkdir -p publish-docs/user-guide-admin/
rsync -a doc/user-guides/build-admin/html/ publish-docs/user-guide-admin/
# Build RST networking guide
{toxinidir}/tools/glossary2rst.py doc/networking-guide/source/glossary.rst
sphinx-build -E -W doc/networking-guide/source doc/networking-guide/build/html
mkdir -p publish-docs/networking-guide/
rsync -a doc/networking-guide/build/html/ publish-docs/networking-guide/
# Build DocBook Guides
openstack-doc-test --check-build {posargs}
[testenv:docs]
commands =
{toxinidir}/tools/build-user-guides.sh
{toxinidir}/tools/glossary2rst.py doc/networking-guide/source/glossary.rst
sphinx-build -W doc/networking-guide/source doc/networking-guide/build/html
[testenv:network]
commands =
{toxinidir}/tools/glossary2rst.py doc/networking-guide/source/glossary.rst
sphinx-build -W doc/networking-guide/source doc/networking-guide/build/html
[testenv:publishdocs]
# Prepare all documents (except www subdir) so that they can get
# published on docs.openstack.org with just copying publish-docs/*
# over.
commands =
# Create directory, it might not be here if openstack-doc-test does
# not publish anything.
mkdir -p publish-docs
# We only publish changed manuals.
openstack-doc-test --check-build --publish
# TODO(jaegerandi): Remove the following lines before we branch off
# a kilo branch.
# Do not publish Debian guide
rm -rf publish-docs/draft/install-guide/install/apt-debian
# Publish install-guide and config-reference to /kilo
cp -a publish-docs/draft publish-docs/kilo
# Replace links to /draft with links to /kilo/
# This needs bash so that tox does not interpret the *
bash -c "sed -i -e 's|/draft/|/kilo/|g' publish-docs/kilo/*/atom.xml publish-docs/kilo/*/*/*/atom.xml publish-docs/kilo/*/*.html publish-docs/kilo/*/*/*/*/*.html publish-docs/kilo/*/*/*/*.html publish-docs/kilo/*/*/*.html publish-docs/kilo/*/*.html || true"
# END Kilo duplication.
# Build both RST User Guides
{toxinidir}/tools/build-user-guides.sh
# Copy RST user-guide
mkdir -p publish-docs/user-guide/
rsync -a doc/user-guides/build/html/ publish-docs/user-guide/
# Copy RST user-guide-admin
mkdir -p publish-docs/user-guide-admin/
rsync -a doc/user-guides/build-admin/html/ publish-docs/user-guide-admin/
# Build RST Networking Guide
{toxinidir}/tools/glossary2rst.py doc/networking-guide/source/glossary.rst
sphinx-build -W doc/networking-guide/source doc/networking-guide/build/html
# Copy RST Networking Guide
mkdir -p publish-docs/networking-guide/
rsync -a doc/networking-guide/build/html/ publish-docs/networking-guide/
# Now publish www as well, we cannot do this from
# openstack-doc-test. Use rsync so that .htaccess gets also
# copied.
python tools/www-generator.py --source-directory www/ --output-directory publish-docs/
rsync -a www/static/ publish-docs/
# Don't publish this file
rm publish-docs/www-index.html
[testenv:checklang]
# Generatedocbook needs xml2po which cannot be installed
# in the venv. Since it's installed in the system, let's
# use sitepackages.
sitepackages=True
whitelist_externals = doc-tools-check-languages
commands = doc-tools-check-languages doc-tools-check-languages.conf test all
[testenv:buildlang]
# Run as "tox -e buildlang -- $LANG"
# Generatedocbook needs xml2po which cannot be installed
# in the venv. Since it's installed in the system, let's
# use sitepackages.
sitepackages=True
whitelist_externals = doc-tools-check-languages
commands = doc-tools-check-languages doc-tools-check-languages.conf test {posargs}
[testenv:publishlang]
# Generatedocbook needs xml2po which cannot be installed
# in the venv. Since it's installed in the system, let's
# use sitepackages.
sitepackages=True
whitelist_externals = doc-tools-check-languages
commands =
doc-tools-check-languages doc-tools-check-languages.conf publish all
[testenv:generatepot-rst]
# Generate POT files for translation, needs {posargs} like:
# tox -e generatepot-rst -- user-guides
commands = {toxinidir}/tools/generatepot-rst.sh {posargs}
[doc8]
# Settings for doc8:
# Ignore target directories
ignore-path = doc/*/target,doc/*/build
# File extensions to use
extensions = .rst,.txt
# Disable some doc8 checks:
# D000: Check RST validity (cannot handle lineos directive)
# D001: Ignore lines longer than 79 chars
ignore = D000, D001
[flake8]
show-source = True
# H803 skipped on purpose per list discussion.
# E123, E125 skipped as they are invalid PEP-8.
ignore = E123,E125,H803
builtins = _
exclude=.venv,.git,.tox,dist,*openstack/common*,*lib/python*,*egg,build,doc/common/samples