3 # This workflow adds these builds to projects:
6 # Generate a html sphinx-build from the $DOCS_DIRECTORY
9 # Run a non-blocking sphinx-build linkcheck against
13 # Serve the built documentation as the Gitlab Pages site for
16 # Both docs-build and docs-link-check run on merge requests and merges
17 # to the default branch that modify files under the $DOCS_DIRECTORY,
18 # while pages only run on merges.
20 # Scheduled builds can be enabled when creating a schedule job and
21 # specifying DOCS_SCHEDULE = "true" in build variables
24 PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
25 DOCS_DIRECTORY: "docs"
27 .docs-cache: &docs-cache
32 .docs-before-script: &docs-before-script
34 - pip install virtualenv
36 - source venv/bin/activate
39 if [ -f "$DOCS_DIRECTORY/requirements.txt" ]; then
40 pip install -r "$DOCS_DIRECTORY/requirements.txt"
49 sphinx-build -T -b html -D language=en $DOCS_DIRECTORY _build/html
55 - if: $CI_PIPELINE_SOURCE == "schedule" && $DOCS_SCHEDULE != "true"
57 - if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
69 sphinx-build -T -b linkcheck $DOCS_DIRECTORY _build/linkcheck
75 - if: $CI_PIPELINE_SOURCE == "schedule" && $DOCS_SCHEDULE != "true"
77 - if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
86 mv _build/html/* public/
91 - if: $CI_PIPELINE_SOURCE == "schedule"
93 - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH