zuul-jobs/roles/sphinx/tasks/main.yaml
Andreas Jaeger 7ee3db4d1b Fix non-standard docs build
sphinx_warning_is_error and sphinx-pbr_autodoc are only useful for the
default documents living in doc/ - but not for api-ref, api-guide, etc.

Check for standard builds and do not run the "python setup.py
build_sphinx" or whereto for non-standard paths.

Change-Id: Ia8edd8a6ebc24f67a52d77c21b0cfa467e45a7ce
2017-12-26 13:29:12 +01:00

88 lines
2.4 KiB
YAML

- name: By default, we use standard doc dir
set_fact:
use_doc_dir: true
- name: Check if sphinx_source_dir was changed
set_fact:
use_doc_dir: false
when: sphinx_source_dir != "doc/source"
- name: Attempt to get warning-is-error from config file
when:
- use_doc_dir
- sphinx_warning_is_error is not defined
sphinx_check_warning_is_error:
project_dir: "{{ zuul_work_dir }}"
register: check_result
- name: Set sphinx_warning_is_error
when:
- use_doc_dir
- sphinx_warning_is_error is not defined
set_fact:
sphinx_warning_is_error: "{{ check_result.warning_is_error }}"
sphinx_pbr_autodoc: "{{ check_result.autodoc_index_modules }}"
- name: Set sphinx_warning_is_error
when:
- not use_doc_dir
- sphinx_warning_is_error is not defined
set_fact:
# Non-default dirs always enable warnings
sphinx_warning_is_error: true
sphinx_pbr_autodoc: false
- name: Run sphinx
shell:
executable: /bin/bash
cmd: |
# Source the activate file so that sphinx subcommands have the correct
# paths set.
source {{ zuul_work_virtualenv }}/bin/activate
sphinx-build -b {{ item }} \
{% if sphinx_warning_is_error %} -W {% endif %} \
{{ sphinx_source_dir }} {{ sphinx_build_dir }}/{{ item }}
chdir: "{{ zuul_work_dir }}"
with_items: "{{ sphinx_builders }}"
when:
- not use_doc_dir or not sphinx_pbr_autodoc
# TODO(mordred) Remove this when we get projects off of the pbr autoindex
- name: Run sphinx using legacy pbr runner
shell:
executable: /bin/bash
cmd: |
# Source the activate file so that sphinx subcommands have the correct
# paths set.
source {{ zuul_work_virtualenv }}/bin/activate
python setup.py build_sphinx
chdir: "{{ zuul_work_dir }}"
when:
- use_doc_dir
- sphinx_pbr_autodoc
- name: Check for whereto
stat:
path: "{{ zuul_work_virtualenv }}/bin/whereto"
get_checksum: false
get_mime: false
get_md5: false
register: whereto
- name: Check for htaccess
stat:
path: "{{ zuul_work_dir }}/{{ sphinx_source_dir }}/_extra/.htaccess"
get_checksum: false
get_mime: false
get_md5: false
register: htaccess
- name: Run whereto
command:
cmd: "{{ whereto.stat.path }} {{ sphinx_source_dir }}/_extra/.htaccess doc/test/redirect-tests.txt"
chdir: "{{ zuul_work_dir }}"
when:
- whereto.stat.exists
- htaccess.stat.exists
- use_doc_dir