Fix: Drydock Exceptions docs rendering on RTD

Readthedocs failed to render Drydock exceptions with error:
> WARNING: autodoc: failed to import exception xxx from module
> 'drydock_provisioner'; the following exception was raised: No module
> named 'drydock_provisioner'

Trying to add Drydock requirements to the installed requirements list,
so that Readthedocs has all modules, including those needed for the
Drydock itself.

Unify docs building by utilizing Zuul docs-on-readthedocs template job.

Cosmetic readability changes:
1. combined all Makefile .PHONY targets into one
2. merged multiple LABEL instructions in Dockerfile into one

Change-Id: I6a9b47cffc66d739968fa886c51e25b1e09ef124
This commit is contained in:
Roman Gorshunov 2019-08-26 19:27:03 +02:00
parent 2cf960f4fc
commit 161326fe06
41 changed files with 125 additions and 150 deletions

25
.readthedocs.yaml Normal file
View File

@ -0,0 +1,25 @@
# .readthedocs.yml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
# Build documentation in the doc/ directory with Sphinx
sphinx:
configuration: doc/source/conf.py
# Build documentation with MkDocs
#mkdocs:
# configuration: mkdocs.yml
# Optionally build your docs in additional formats such as PDF and ePub
formats:
- pdf
# Optionally set the version of Python and requirements required to build your docs
python:
version: 3.7
install:
- requirements: doc/requirements-doc.txt
- requirements: requirements-host.txt

View File

@ -11,6 +11,11 @@
# limitations under the License.
- project:
templates:
- docs-on-readthedocs
vars:
rtd_webhook_id: '38809'
rtd_project_name: 'airship-drydock'
check:
jobs:
- airship-drydock-omni-test
@ -26,7 +31,6 @@
post:
jobs:
- airship-drydock-doc-publish
- airship-drydock-docker-publish
- drydock-upload-git-mirror
@ -70,7 +74,7 @@
run: tools/gate/playbooks/docker-image-build.yaml
nodeset: airship-drydock-single-node
irrelevant-files:
- '^docs/.*'
- '^doc/.*'
- '^charts/.*'
vars:
publish: false
@ -86,7 +90,7 @@
secrets:
- airship_drydock_quay_creds
irrelevant-files:
- '^docs/.*'
- '^doc/.*'
- '^charts/.*'
vars:
publish: true
@ -97,16 +101,6 @@
static:
- latest
- job:
name: airship-drydock-doc-publish
description: |
Publish documentation on airship-drydock.readthedocs.io
run: tools/gate/playbooks/doc-publish.yaml
secrets:
- airship_drydock_readthedocs
timeout: 300
nodeset: airship-drydock-single-node
- secret:
name: airship_drydock_quay_creds
data:
@ -133,32 +127,6 @@
B1qsfXoY9lVL59lCl4jYLqyGA99Oybi5YKTP8O+IH5Xo7XLOje7K0Vfvh7v8Mcja8pZRG
sgRbPr/10a2g6+s37XofkFEeba7B8fV5h6v/A3tMy7U01rZ2qLBC/4hxrikXT8=
- secret:
name: airship_drydock_readthedocs
data:
url: !encrypted/pkcs1-oaep
- dcOaNb6+3zCSp8rlmaA8U/v8kxzsB9MPqmbfbFSoyCsXOAMvluYSitmF7XpYdZLOXPOvm
+stE6m57dRBDlryymoLHVUxgeAkA/4YR1/78tF8vTLBDbWaLXVLTFBjx6jg17nS9X/UKs
W+UtSA1rVmeoaF8jrxO+c0IJjhgRDchFyPa9s7CnrxUn12IN6IDym0YcUQLxUOFzofm3F
fCtwFY84lRCJhB80jfXuYPlIdxTO3q245JlDvhRm4y6p/qCNljNm/Kw6o6ngKjh0f/CM6
7oFZPsE1XDYWGvR0msq8rjCST6k380vIBeroOqfwRhrjU5YCTgZy2kmw/veY3eGs5bEbb
OBZeIb6mk1+D9bmRbFaTmVns7E+a6Fdz/rrttebmak8aBATQD9sgBnvghFAAHibT4LNdn
ic+eEy/RXqyHqZuIPukQjAF0FgfK7jDqVzB/scx2tpw7lYwpDZM8bOHFNIAC4zRVg66O2
1HPo4egknU8MQRy1FwNm7A91AY2cKZSusfrQlND/vflK27/lxCdHoOYw8JVaGxe02Ac+n
XapfJuj7tAkFF+jeaWamB5CMiC+4M3zsrReB2/kqbxGFXC0nQ9q9AbVg48zCZFxNTVMLj
J5K79voMoMmFoP14trhneFDs1Ki8FOLU1fqU7KrBYrlixI4FJwJ6ljEM9C/OvU=
token: !encrypted/pkcs1-oaep
- i6Js243rxTsL0V1l5UWsJalCiRh3kYs54nBz0M9KKrE5YYdAYkD59jKSPncUeG7V+VTkr
LuwGpI837r/oaYqD7g4ZZhsE/X+xSE1PSdtsSY3t5GZZAPdKG4oSLxl0buTd23JsS6cU4
7IAh4Q28wtaIXg8fZ69KVkGm2f2nXPNKbUH/yPTjFW51yEXI55AClNKzv+mVKLd1PNdCN
USQkmF4fvgFreQym+NkZrUh78YMQI1uNT1e7rhD/jxYCjhZGAEr0Clxiu8UmLIRvxHgc2
2SM99xT8s0/dRudePkSz3zXSagwWvdat8bHqpGHJrakjZvePtGeZrdk20v7JQHt8T3XBp
InfWRB8ad/gDvgpstXiag4EHsJ7tnFuwsFDh+KSYySBjtkbYqY8Rx8lQ5qW/Qgk96LagJ
yzpin6EquBcnnPNTGTYLRF9jtowzbI8G9ItRRWdvkIQSlMQDxROI4bVEnfLHgRMbAKVjF
1oSaiEzMwMHj356qYBS06pBBF3Dr/OCIZNiBy3UU8J6OJt2XchMgy9TVhsGkj+HE092d+
mADSwkA5TpfWJCo8rqTDO8cCXIeiG8kBoxjph5m7YNWUcbuRDQdbga1FjV4lMe9bMyOo5
AJ6O8hl3q7CJElLw6Z7p9vW2wHUf/xr242pZnk70DiMkyXxzJFLLqvRsWctTDc=
- job:
name: drydock-upload-git-mirror
parent: upload-git-mirror

View File

@ -32,15 +32,12 @@ GO_BUILDER ?= docker.io/golang:1.10-stretch
export
# Build all docker images for this project
.PHONY: images
images: build_drydock
# Run an image locally and exercise simple tests
.PHONY: run_images
run_images: run_drydock
# Run tests
.PHONY: tests
tests: pep8 security docs unit_tests test_baclient
# Install external (not managed by tox/pip) dependencies
@ -49,63 +46,51 @@ external_dep: requirements-host.txt requirements-host-test.txt
touch external_dep
# Run unit and Postgres integration tests in coverage mode
.PHONY: coverage_test
coverage_test: build_drydock
tox -re cover
# Run just unit tests
.PHONY: unit_tests
unit_tests: external_dep
tox -re py35 $(TESTS)
# Run just DB integration tests
.PHONY: db_integration_tests
db_integration_tests: external_dep
tox -re integration $(TESTS)
# Freeze full set of Python requirements
.PHONY: req_freeze
req_freeze:
tox -re freeze
# Run the drydock container and exercise simple tests
.PHONY: run_drydock
run_drydock: build_drydock
tools/drydock_image_run.sh
# It seems CICD expects the target 'drydock' to
# build the chart
.PHONY: drydock
drydock: charts
# Create tgz of the chart
.PHONY: charts
charts: helm-init
$(HELM) dep up charts/drydock
$(HELM) package charts/drydock
# Perform Linting
.PHONY: lint
lint: pep8 helm_lint
# Dry run templating of chart
.PHONY: dry-run
dry-run: helm-init
$(HELM) template --set manifests.secret_ssh_key=true --set conf.ssh.private_key=foo charts/drydock
# Initialize local helm config
.PHONY: helm-init
helm-init: helm-install
tools/helm_tk.sh $(HELM)
# Install helm binary
.PHONY: helm-install
helm-install:
tools/helm_install.sh $(HELM)
# Make targets intended for use by the primary targets above.
.PHONY: build_drydock
build_drydock: external_dep build_baclient
export; tools/drydock_image_build.sh
ifeq ($(PUSH_IMAGE), true)
@ -113,49 +98,44 @@ ifeq ($(PUSH_IMAGE), true)
endif
# Make target for building bootaction signal client
.PHONY: build_baclient
build_baclient: external_dep
docker run -tv $(shell realpath go):/work -v $(shell realpath $(BUILD_DIR)):/build -e GOPATH=/work $(GO_BUILDER) go build -o /build/baclient baclient
# Make target for testing bootaction signal client
.PHONY: test_baclient
test_baclient: external_dep
docker run -tv $(shell realpath go):/work -e GOPATH=/work $(GO_BUILDER) go test -v baclient
.PHONY: docs
docs: clean drydock_docs
.PHONY: security
security: external_dep
tox -e bandit
.PHONY: drydock_docs
drydock_docs: external_dep render_diagrams genpolicy genconfig
tox -e docs
.PHONY: render_diagrams
render_diagrams:
plantuml -v -tpng -o ../source/images docs/diagrams/*.uml
plantuml -v -tpng -o ../source/images doc/diagrams/*.uml
.PHONY: genpolicy
genpolicy:
tox -e genpolicy
.PHONY: genconfig
genconfig:
tox -e genconfig
.PHONY: clean
clean:
rm -rf build
rm -rf docs/build
rm -rf doc/build
rm -rf charts/drydock/charts
rm -rf charts/drydock/requirements.lock
.PHONY: pep8
pep8: external_dep
tox -e pep8
.PHONY: helm_lint
helm_lint: helm-init
$(HELM) lint charts/drydock
.PHONY: build_baclient build_drydock charts clean coverage_test \
db_integration_tests docs drydock drydock_docs dry-run genconfig \
genpolicy helm-init helm-install helm_lint images lint pep8 \
render_diagrams req_freeze run_drydock run_images security \
test_baclient tests unit_tests

View File

@ -38,8 +38,8 @@ described by the following fields.
* Task - The Drydock Task ID that initiated the collection.
* Node - The node on which the data is collected.
* Generator - A description of what generated the data. If it was a command line tool,
the full command line. If it was something else, then a solid description
such as an API endpoint.
the full command line. If it was something else, then a solid description
such as an API endpoint.
* Format - The format that the collected data is being persisted as.
Post-collection, the build data will be accessible in two ways

View File

@ -141,8 +141,8 @@ a proxy or for geneting the Docker image with custom tags.
* ``IMAGE_PREFIX`` - Defaults to ``airshipit``, the registry organization to push images into
* ``IMAGE_TAG`` - Defaults to ``dev``, a tag to apply to the image
* ``PUSH_IMAGE`` - Defaults to ``false``, set to ``true`` if you want the build process to also
push the image. Likely will require you have previously run ``docker login``.
push the image. Likely will require you have previously run ``docker login``.
* ``PROXY`` - A HTTP/HTTPS proxy server to add to the image build environment. Required if you
are building the image behind a proxy.
are building the image behind a proxy.
* ``USE_PROXY`` - Defaults to ``false``, set to ``true`` to include the ``PROXY`` configuration
above in the build.
above in the build.

View File

@ -17,12 +17,14 @@
API Errors
----------
.. autoexception:: drydock_provisioner.error.ClientError
.. currentmodule:: drydock_provisioner.error
.. autoexception:: ClientError
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: drydock_provisioner.error.InvalidFormat
.. autoexception:: InvalidFormat
:members:
:show-inheritance:
:undoc-members:

View File

@ -18,17 +18,19 @@
Bootaction Errors
-----------------
.. autoexception:: drydock_provisioner.error.InvalidAssetLocation
.. currentmodule:: drydock_provisioner.error
.. autoexception:: InvalidAssetLocation
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: drydock_provisioner.error.PipelineFailure
.. autoexception:: PipelineFailure
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: drydock_provisioner.error.UnknownPipelineSegment
.. autoexception:: UnknownPipelineSegment
:members:
:show-inheritance:
:undoc-members:

View File

@ -18,7 +18,9 @@
BuildData Errors
----------------
.. autoexception:: drydock_provisioner.error.BuildDataError
.. currentmodule:: drydock_provisioner.error
.. autoexception:: BuildDataError
:members:
:show-inheritance:
:undoc-members:

View File

@ -17,12 +17,14 @@
Client Errors
-------------
.. autoexception:: drydock_provisioner.error.ClientForbiddenError
.. currentmodule:: drydock_provisioner.error
.. autoexception:: ClientForbiddenError
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: drydock_provisioner.error.ClientUnauthorizedError
.. autoexception:: ClientUnauthorizedError
:members:
:show-inheritance:
:undoc-members:

View File

@ -17,17 +17,19 @@
Design Errors
-------------
.. autoexception:: drydock_provisioner.error.DesignError
.. currentmodule:: drydock_provisioner.error
.. autoexception:: DesignError
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: drydock_provisioner.error.IngesterError
.. autoexception:: IngesterError
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: drydock_provisioner.error.InvalidDesignReference
.. autoexception:: InvalidDesignReference
:members:
:show-inheritance:
:undoc-members:

View File

@ -17,27 +17,29 @@
Driver Errors
-------------
.. autoexception:: drydock_provisioner.error.DriverError
.. currentmodule:: drydock_provisioner.error
.. autoexception:: DriverError
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: drydock_provisioner.error.InvalidSizeFormat
.. autoexception:: InvalidSizeFormat
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: drydock_provisioner.error.NotEnoughStorage
.. autoexception:: NotEnoughStorage
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: drydock_provisioner.error.PersistentDriverError
.. autoexception:: PersistentDriverError
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: drydock_provisioner.error.TransientDriverError
.. autoexception:: TransientDriverError
:members:
:show-inheritance:
:undoc-members:

View File

@ -18,12 +18,14 @@
Orchestrator Errors
-------------------
.. autoexception:: drydock_provisioner.error.MaxRetriesReached
.. currentmodule:: drydock_provisioner.error
.. autoexception:: MaxRetriesReached
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: drydock_provisioner.error.OrchestratorError
.. autoexception:: OrchestratorError
:members:
:show-inheritance:
:undoc-members:

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -70,3 +70,11 @@ Topology Documentation
topology
troubleshooting/index
Blueprints
----------
.. toctree::
:maxdepth: 1
blueprints/index

View File

@ -181,7 +181,7 @@ defined.
* ``gateway``: The gateway IP on this Network to use for accessing the destination
* ``metric``: The metric or weight for this route
* ``routedomain``: Use this route's gateway and metric for accessing networks in the
defined routedomain.
defined routedomain.
``dns`` is used for specifying the list of DNS servers to use if this network
is the primary network for the node.
@ -191,7 +191,7 @@ is the primary network for the node.
addresses assigned from this Network
DHCP Relay
~~~~~~~~~~
^^^^^^^^^^
DHCP relaying is used when a DHCP server is not attached to the same layer 2
broadcast domain as nodes that are being PXE booted. The DHCP requests from the
@ -283,7 +283,7 @@ An example HardwareProfile document:
count: 530000
Device Aliases
~~~~~~~~~~~~~~
^^^^^^^^^^^^^^
Device aliases are a way of mapping a particular device bus address
to an alias. In the example above we map the PCI address ``0000:00:03.0``
@ -294,7 +294,7 @@ at PCI address ``0000.00.03.0``. Currently device aliases are supported
for network interface slave devices and storage physical devices.
Kernel Parameter References
~~~~~~~~~~~~~~~~~~~~~~~~~~~
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Some kernel parameters specified in a host profile rely on particular hardware
builds, such as ``isolcpus``. To support the greatest flexibility in building
@ -358,7 +358,7 @@ adopted from *defaults*) and can then again override or append any
configuration that is specific to that node.
Defining Node Out-Of-Band Management
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Drydock supports plugin-based OOB management. At a minimum a
OOB driver supports configuring a node to PXE boot during the next
@ -370,7 +370,7 @@ parameters are required for that type and what capabilities are available
via OOB driver tasks.
IPMI
****
""""
The ``ipmi`` OOB type requires additional configuration to allow OOB
management:
@ -386,7 +386,7 @@ Currently the IPMI driver supports only basic management by setting nodes to PXE
power-cycling the node.
Libvirt
*******
"""""""
The ``libvirt`` OOB type requires additional configuration within the site definition
as well as particular configuration in the deployment of Drydock (and likely the node
@ -407,7 +407,7 @@ Currently the Libvirt driver supports only basic management by setting nodes to
power-cycling the node.
Defining Node Interfaces and Network Addressing
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Node network attachment can be described in a ``HostProfile`` or a
``BaremetalNode`` document. Node addressing is allowed only in a
@ -420,7 +420,7 @@ Once the interface attachments to networks is defined, ``HostProfile`` and
which network the node should use as the primary route.
Interfaces
**********
""""""""""
Interfaces for a node can be described in either a ``HostProfile`` or
``BaremetalNode`` definition. This will attach a defined NetworkLink to a host
@ -467,7 +467,7 @@ that interface for an inherited configuration.
have trunking enabled or the design validation will fail.
Addressing
**********
""""""""""
Addressing for a node can only be defined in a ``BaremetalNode`` definition. The
``addressing`` stanza simply defines a static IP address or ``dhcp`` for each
@ -492,7 +492,7 @@ Example ``addressing`` YAML schema:
Defining Node Storage
~~~~~~~~~~~~~~~~~~~~~
^^^^^^^^^^^^^^^^^^^^^
Storage can be defined in the ``storage`` stanza of either a HostProfile or
BaremetalNode document. The storage configuration can describe the creation of
@ -539,13 +539,13 @@ Example YAML schema of the ``storage`` stanza:
mount_options: 'defaults'
Schema
******
""""""
The ``storage`` stanza can contain two top-level keys: ``physical_devices`` and
``volume_groups``. The latter is optional.
Physical Devices and Partitions
*******************************
"""""""""""""""""""""""""""""""
A physical device can either be carved up in partitions (including a single
partition consuming the entire device) or added to a volume group as a physical
@ -563,7 +563,7 @@ mapping with the following keys
volume. Incompatible with the ``partitions`` specification.
Partition
^^^^^^^^^
"""""""""
A partition mapping describes a GPT partition on a physical disk. It can be left
as a raw block device or formatted and mounted as a filesystem.
@ -585,7 +585,7 @@ as a raw block device or formatted and mounted as a filesystem.
* ``fs_label``: A filesystem label to assign to the filesystem. Optional.
Size Format
^^^^^^^^^^^
"""""""""""
The size specification for a partition or logical volume is formed from three
parts:
@ -602,7 +602,7 @@ parts:
* %: The percentage of total device or volume group space
Volume Groups and Logical Volumes
*********************************
"""""""""""""""""""""""""""""""""
Logical volumes can be used to create RAID-0 volumes spanning multiple physical
disks or partitions. Each key in the ``volume_groups`` mapping is a name
@ -616,7 +616,7 @@ invalid. Each mapping value is another mapping describing the volume group.
created in the volume group
Logical Volume
^^^^^^^^^^^^^^
""""""""""""""
A logical volume is a RAID-0 volume. Using logical volumes for ``/`` and
``/boot`` is supported
@ -637,7 +637,7 @@ and ``kernel`` to use as well as customize the kernel configuration with
``kernel_params``.
Image and Kernel Selection
**************************
^^^^^^^^^^^^^^^^^^^^^^^^^^
The valid ``image`` and ``kernel`` values are dependent on what is supported
by your node provisioner. In the example of Canonical MaaS using the 16.04 LTS
@ -645,7 +645,7 @@ image, the values would be ``image: 'xenial'`` and ``kernel: 'ga-16.04'`` for th
LTS kernel or ``kernel: hwe-16.04`` for the hardware-enablement kernel.
Kernel Parameters
*****************
^^^^^^^^^^^^^^^^^
The ``kernel_params`` configuration is a mapping. Each key should either be a string
or boolean value. For boolean ``true`` values, the key will be added to the kernel
@ -653,7 +653,7 @@ parameter list as a flag. For string values, the key:value pair will be added to
kernel parameter list as ``key=value``.
Parameter References
^^^^^^^^^^^^^^^^^^^^
""""""""""""""""""""
One special case is supported for values that match a hardware profile reference.
When the parameter is rendered for a particular node, the value included in the

View File

@ -14,17 +14,17 @@
License for the specific language governing permissions and limitations
under the License.
=============================
Dryodck Topology Validation
=============================
===========================
Drydock Topology Validation
===========================
DD1XXX - Storage Validations
=============================
============================
To be continued
DD2XXX - Network Validations
=============================
============================
To be continued
@ -34,6 +34,6 @@ DD3XXX - Platform Validations
To be continued
DD4XXX - Bootaction Validations
=============================
===============================
To be continued

View File

@ -27,5 +27,7 @@ Validation Checks
These checks are meant to check the business logic of documents sent to the validatedesign API.
.. autoclass:: drydock_provisioner.orchestrator.validations.validator.Validator
.. currentmodule:: drydock_provisioner.orchestrator.validations.validator
.. autoclass:: Validator
:members:

View File

@ -15,12 +15,12 @@
ARG FROM=ubuntu:16.04
FROM ${FROM}
LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode'
LABEL org.opencontainers.image.url='https://airshipit.org'
LABEL org.opencontainers.image.documentation='https://airship-drydock.readthedocs.org'
LABEL org.opencontainers.image.source='https://git.openstack.org/openstack/airship-drydock'
LABEL org.opencontainers.image.vendor='The Airship Authors'
LABEL org.opencontainers.image.licenses='Apache-2.0'
LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode' \
org.opencontainers.image.url='https://airshipit.org' \
org.opencontainers.image.documentation='https://airship-drydock.readthedocs.org' \
org.opencontainers.image.source='https://git.openstack.org/openstack/airship-drydock' \
org.opencontainers.image.vendor='The Airship Authors' \
org.opencontainers.image.licenses='Apache-2.0'
ARG UBUNTU_REPO=http://archive.ubuntu.com/ubuntu
ARG TRUSTED_UBUNTU_REPO=no

View File

@ -1,17 +0,0 @@
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- hosts: primary
tasks:
- name: Publish current merged documents on readthedocs
shell: 'set -x && curl -X POST -d "token={{ airship_drydock_readthedocs.token | trim }}" "{{ airship_drydock_readthedocs.url | trim }}"'
register: result

View File

@ -25,11 +25,6 @@
chdir: "{{ zuul.project.src_dir }}"
target: helm_lint
register: result
- name: Build documents locally
make:
chdir: "{{ zuul.project.src_dir }}"
target: docs
register: result
- name: Execute the make target for security scanning
make:
chdir: "{{ zuul.project.src_dir }}"

10
tox.ini
View File

@ -72,13 +72,13 @@ commands=
basepython=python3
whitelist_externals=tee
sh
commands = sh -c 'oslo-config-generator --config-file=etc/drydock/drydock-config-generator.conf | tee etc/drydock/drydock.conf.sample docs/source/_static/drydock.conf.sample'
commands = sh -c 'oslo-config-generator --config-file=etc/drydock/drydock-config-generator.conf | tee etc/drydock/drydock.conf.sample doc/source/_static/drydock.conf.sample'
[testenv:genpolicy]
basepython=python3
whitelist_externals=tee
sh
commands = sh -c 'oslopolicy-sample-generator --config-file etc/drydock/drydock-policy-generator.conf | tee etc/drydock/policy.yaml.sample docs/source/_static/policy.yaml.sample'
commands = sh -c 'oslopolicy-sample-generator --config-file etc/drydock/drydock-policy-generator.conf | tee etc/drydock/policy.yaml.sample doc/source/_static/policy.yaml.sample'
[testenv:pep8]
basepython=python3
@ -97,9 +97,9 @@ max-line-length=119
[testenv:docs]
basepython=python3
deps=
-rdocs/requirements-doc.txt
-rdoc/requirements-doc.txt
whitelist_externals=rm
recreate=true
commands =
rm -rf docs/build
sphinx-build -b html docs/source docs/build
rm -rf doc/build
sphinx-build -b html doc/source doc/build/html