Переглянути джерело

gitlab-ci: add a job to make a doc "bundle"

This can be added to any other platform's package by reusing the
artifact.
Ben Boeckel 5 роки тому
батько
коміт
7d4ec05c6f

+ 8 - 0
.gitlab-ci.yml

@@ -52,6 +52,14 @@ build:fedora31-sphinx:
         - .linux_builder_tags_qt
         - .run_automatically
 
+build:fedora31-sphinx-package:
+    extends:
+        - .fedora31_sphinx_package
+        - .cmake_build_linux
+        - .linux_builder_tags_qt
+        - .cmake_doc_artifacts
+        - .run_only_for_package
+
 # Linux builds
 
 build:centos6-release:

+ 7 - 0
.gitlab/artifacts.yml

@@ -79,3 +79,10 @@
         paths:
             # Take the install tree.
             - build/install/
+
+.cmake_doc_artifacts:
+    artifacts:
+        expire_in: 1d
+        paths:
+            # Take the install tree.
+            - build/install-doc/

+ 1 - 7
.gitlab/ci/configure_fedora31_sphinx.cmake

@@ -1,8 +1,2 @@
-set(SPHINX_INFO ON CACHE BOOL "")
-set(SPHINX_MAN ON CACHE BOOL "")
-set(SPHINX_HTML ON CACHE BOOL "")
-set(SPHINX_SINGLEHTML ON CACHE BOOL "")
-set(SPHINX_QTHELP ON CACHE BOOL "")
-set(SPHINX_TEXT ON CACHE BOOL "")
-
+include("${CMAKE_CURRENT_LIST_DIR}/configure_sphinx.cmake")
 include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake")

+ 13 - 0
.gitlab/ci/configure_fedora31_sphinx_package.cmake

@@ -0,0 +1,13 @@
+# Disable formats not wanted in the package's documentation.
+set(SPHINX_INFO OFF CACHE BOOL "")
+set(SPHINX_SINGLEHTML OFF CACHE BOOL "")
+set(SPHINX_TEXT OFF CACHE BOOL "")
+
+# Set the destination directory for docs that packages expect.
+set(CMAKE_DOC_DIR "doc/cmake" CACHE STRING "")
+
+# Use a custom prefix to avoid conflicting with other builds.
+set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install-doc" CACHE PATH "")
+
+include("${CMAKE_CURRENT_LIST_DIR}/configure_sphinx.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake")

+ 6 - 0
.gitlab/ci/configure_sphinx.cmake

@@ -0,0 +1,6 @@
+set(SPHINX_INFO ON CACHE BOOL "")
+set(SPHINX_MAN ON CACHE BOOL "")
+set(SPHINX_HTML ON CACHE BOOL "")
+set(SPHINX_SINGLEHTML ON CACHE BOOL "")
+set(SPHINX_QTHELP ON CACHE BOOL "")
+set(SPHINX_TEXT ON CACHE BOOL "")

+ 7 - 0
.gitlab/os-linux.yml

@@ -54,6 +54,13 @@
         CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx"
         CMake_SKIP_INSTALL: 1
 
+.fedora31_sphinx_package:
+    extends: .fedora31
+
+    variables:
+        CMAKE_CONFIGURATION: fedora31_sphinx_package
+        CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx"
+
 #### Build and test
 
 .fedora31_ninja:

+ 6 - 0
.gitlab/rules.yml

@@ -16,3 +16,9 @@
         - if: '$CI_PROJECT_PATH == "cmake/cmake"'
           when: on_success
         - when: never
+
+.run_only_for_package:
+    rules:
+        - if: '$CMAKE_PACKAGE == "true"'
+          when: on_success
+        - when: never