diff --git a/.github/workflows/list_components.yml b/.github/workflows/list_components.yml
index 191ccd1e40d4df847f036e9ee1bbbdd41e53b058..28de752f20dbb8f99bcc179c5eb1c50312ec8014 100644
--- a/.github/workflows/list_components.yml
+++ b/.github/workflows/list_components.yml
@@ -31,59 +31,95 @@ jobs:
         shell: bash
     steps:
     - uses: actions/checkout@v2
+    - uses: actions/setup-python@v2
+      with:
+        python-version: '3.x'
     - name: Intel® oneAPI Base Toolkit
-      run: scripts/list_components_windows.bat $WINDOWS_BASEKIT_URL
+      run: scripts/list_components_windows.bat $WINDOWS_BASEKIT_URL doc\\source\\${{ github.workflow }}\\${{ github.job }}_basekit.txt
     - name: Intel® oneAPI HPC Toolkit
-      run: scripts/list_components_windows.bat $WINDOWS_HPCKIT_URL
+      run: scripts/list_components_windows.bat $WINDOWS_HPCKIT_URL doc\\source\\${{ github.workflow }}\\${{ github.job }}_hpckit.txt
     - name: Intel® oneAPI IoT Toolkit
-      run: scripts/list_components_windows.bat $WINDOWS_IOTKIT_URL
+      run: scripts/list_components_windows.bat $WINDOWS_IOTKIT_URL doc\\source\\${{ github.workflow }}\\${{ github.job }}_iotkit.txt
     - name: Intel® oneAPI Rendering Toolkit
-      run: scripts/list_components_windows.bat $WINDOWS_RENDERKIT_URL
+      run: scripts/list_components_windows.bat $WINDOWS_RENDERKIT_URL doc\\source\\${{ github.workflow }}\\${{ github.job }}_renderkit.txt
+
+    - name: Upload artifacts
+      uses: actions/upload-artifact@v2
+      with:
+        name: ${{ github.job }}
+        path: doc/source/${{ github.workflow }}/${{ github.job }}_*
 
   linux:
-    runs-on: ubuntu-latest
+    runs-on: ubuntu-20.04
     defaults:
       run:
         shell: bash
     steps:
     - uses: actions/checkout@v2
+    - uses: actions/setup-python@v2
+      with:
+        python-version: '3.x'
     - name: Intel® oneAPI Base Toolkit
-      run: scripts/list_components_linux.sh $LINUX_BASEKIT_URL
+      run: scripts/list_components_linux.sh $LINUX_BASEKIT_URL doc/source/${{ github.workflow }}/${{ github.job }}_basekit.txt
     - name: Intel® oneAPI HPC Toolkit
-      run: scripts/list_components_linux.sh $LINUX_HPCKIT_URL
+      run: scripts/list_components_linux.sh $LINUX_HPCKIT_URL doc/source/${{ github.workflow }}/${{ github.job }}_hpckit.txt
     - name: Intel® oneAPI IoT Toolkit
-      run: scripts/list_components_linux.sh $LINUX_IOTKIT_URL
+      run: scripts/list_components_linux.sh $LINUX_IOTKIT_URL doc/source/${{ github.workflow }}/${{ github.job }}_iotkit.txt
     - name: Intel® AI Analytics Toolkit
-      run: scripts/list_components_linux.sh $LINUX_AIKIT_URL
+      run: scripts/list_components_linux.sh $LINUX_AIKIT_URL doc/source/${{ github.workflow }}/${{ github.job }}_aikit.txt
     - name: Intel® oneAPI DL Framework Developer Toolkit
-      run: scripts/list_components_linux.sh $LINUX_DLFDKIT_URL
+      run: scripts/list_components_linux.sh $LINUX_DLFDKIT_URL doc/source/${{ github.workflow }}/${{ github.job }}_dlfdkit.txt
     - name: Intel® oneAPI Rendering Toolkit
-      run: scripts/list_components_linux.sh $LINUX_RENDERKIT_URL
+      run: scripts/list_components_linux.sh $LINUX_RENDERKIT_URL doc/source/${{ github.workflow }}/${{ github.job }}_renderkit.txt
+
+    - name: Upload artifacts
+      uses: actions/upload-artifact@v2
+      with:
+        name: ${{ github.job }}
+        path: doc/source/${{ github.workflow }}/${{ github.job }}_*
 
   linux_apt:
-    runs-on: ubuntu-latest
+    runs-on: ubuntu-20.04
     defaults:
       run:
         shell: bash
     steps:
     - uses: actions/checkout@v2
+    - uses: actions/setup-python@v2
+      with:
+        python-version: '3.x'
     - name: setup apt repo
       run: scripts/setup_apt_repo_linux.sh
     - name: Intel® oneAPI packages provided in APT repository
-      run: scripts/list_components_linux_apt.sh
+      run: scripts/list_components_linux_apt.sh doc/source/${{ github.workflow }}/${{ github.job }}.txt
+
+    - name: Upload artifacts
+      uses: actions/upload-artifact@v2
+      with:
+        name: ${{ github.job }}
+        path: doc/source/${{ github.workflow }}/${{ github.job }}.txt
 
   linux_yum_dnf:
-    runs-on: ubuntu-latest
+    runs-on: ubuntu-20.04
     container: fedora
     defaults:
       run:
         shell: bash
     steps:
     - uses: actions/checkout@v2
+    - uses: actions/setup-python@v2
+      with:
+        python-version: '3.x'
     - name: setup yum/dnf repo
       run: scripts/setup_yum_dnf_repo_linux.sh
     - name: Intel® oneAPI packages provided in YUM/DNF repository
-      run: scripts/list_components_linux_dnf.sh
+      run: scripts/list_components_linux_dnf.sh doc/source/${{ github.workflow }}/${{ github.job }}.txt
+
+    - name: Upload artifacts
+      uses: actions/upload-artifact@v2
+      with:
+        name: ${{ github.job }}
+        path: doc/source/${{ github.workflow }}/${{ github.job }}.txt
 
   macos:
     runs-on: macos-latest
@@ -92,9 +128,87 @@ jobs:
         shell: bash
     steps:
     - uses: actions/checkout@v2
+    - uses: actions/setup-python@v2
+      with:
+        python-version: '3.x'
     - name: Intel® oneAPI Base Toolkit
-      run: scripts/list_components_macos.sh $MACOS_BASEKIT_URL
+      run: scripts/list_components_macos.sh $MACOS_BASEKIT_URL doc/source/${{ github.workflow }}/${{ github.job }}_basekit.txt
     - name: Intel® oneAPI HPC Toolkit
-      run: scripts/list_components_macos.sh $MACOS_HPCKIT_URL
+      run: scripts/list_components_macos.sh $MACOS_HPCKIT_URL doc/source/${{ github.workflow }}/${{ github.job }}_hpckit.txt
     - name: Intel® oneAPI Rendering Toolkit
-      run: scripts/list_components_macos.sh $MACOS_RENDERKIT_URL
+      run: scripts/list_components_macos.sh $MACOS_RENDERKIT_URL doc/source/${{ github.workflow }}/${{ github.job }}_renderkit.txt
+
+    - name: Upload artifacts
+      uses: actions/upload-artifact@v2
+      with:
+        name: ${{ github.job }}
+        path: doc/source/${{ github.workflow }}/${{ github.job }}_*
+
+  publish:
+    runs-on: ubuntu-20.04
+    needs: [windows, linux, linux_apt, linux_yum_dnf, macos]
+    defaults:
+      run:
+        shell: bash
+        working-directory: doc
+    steps:
+    - uses: actions/checkout@v2
+    - name: Download artifacts - windows
+      uses: actions/download-artifact@v2
+      with:
+        name: windows
+        path: doc/source/${{ github.workflow }}
+    - name: Download artifacts - linux
+      uses: actions/download-artifact@v2
+      with:
+        name: linux
+        path: doc/source/${{ github.workflow }}
+    - name: Download artifacts - linux_apt
+      uses: actions/download-artifact@v2
+      with:
+        name: linux_apt
+        path: doc/source/${{ github.workflow }}
+    - name: Download artifacts - linux_yum_dnf
+      uses: actions/download-artifact@v2
+      with:
+        name: linux_yum_dnf
+        path: doc/source/${{ github.workflow }}
+    - name: Download artifacts - macos
+      uses: actions/download-artifact@v2
+      with:
+        name: macos
+        path: doc/source/${{ github.workflow }}
+    - uses: actions/setup-python@v2
+      with:
+        python-version: '3.x'
+    - name: Install prerequisites
+      run: python -m pip install --quiet -r requirements.txt
+    - name: Build doc
+      run: |
+        find source/${{ github.workflow }} -type f -maxdepth 1 ! -name "*apt*" ! -name "*yum*" -exec sed -i -e 1,5d {} \;
+        find source/${{ github.workflow }} -type f -maxdepth 1 -name "*windows*" -exec sed -i -e 1,2d {} \;
+        sed -i -e 1,7d source/${{ github.workflow }}/linux_yum_dnf.txt
+        make html
+    - name: Save built doc as artifact
+      uses: actions/upload-artifact@v2
+      with:
+          name: ${{ github.job }}
+          path: doc/build
+    - name: Checkout gh-pages
+      if: ${{ github.ref == 'refs/heads/master' }}
+      uses: actions/checkout@v2
+      with:
+        ref: gh-pages
+        path: gh-pages
+    - name: Publish to github pages
+      if: ${{ github.ref == 'refs/heads/master' }}
+      run: |
+          cd ../gh-pages
+          rm -rf *
+          touch .nojekyll
+          cp -r ../doc/build/html/* .
+          git config user.name github-actions
+          git config user.email github-actions@github.com
+          git add .
+          git commit -m "Update from github actions"
+          git push
diff --git a/.gitignore b/.gitignore
index 29c781c388318ed53be653628494c039a25577a9..c69b892a00b6656b437dd75b40a19169788e0fcc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@
 *~
 src/*.bin
 src/*.out
+doc/build
diff --git a/.reuse/dep5 b/.reuse/dep5
new file mode 100644
index 0000000000000000000000000000000000000000..05f68413eb2d428615a2d2f4cab2c70fe2156068
--- /dev/null
+++ b/.reuse/dep5
@@ -0,0 +1,8 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: oneapi-ci
+Upstream-Contact: Maxim Zakharov <maxim.m.zakharov@intel.com>
+Source:
+
+Files: doc/*
+Copyright: 2020 Intel Corporation
+License: CC-BY-4.0
diff --git a/doc/Makefile b/doc/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..d0c3cbf1020d5c292abdedf27627c6abe25e2293
--- /dev/null
+++ b/doc/Makefile
@@ -0,0 +1,20 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line, and also
+# from the environment for the first two.
+SPHINXOPTS    ?=
+SPHINXBUILD   ?= sphinx-build
+SOURCEDIR     = source
+BUILDDIR      = build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/doc/make.bat b/doc/make.bat
new file mode 100644
index 0000000000000000000000000000000000000000..6247f7e231716482115f34084ac61030743e0715
--- /dev/null
+++ b/doc/make.bat
@@ -0,0 +1,35 @@
+@ECHO OFF
+
+pushd %~dp0
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+	set SPHINXBUILD=sphinx-build
+)
+set SOURCEDIR=source
+set BUILDDIR=build
+
+if "%1" == "" goto help
+
+%SPHINXBUILD% >NUL 2>NUL
+if errorlevel 9009 (
+	echo.
+	echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
+	echo.installed, then set the SPHINXBUILD environment variable to point
+	echo.to the full path of the 'sphinx-build' executable. Alternatively you
+	echo.may add the Sphinx directory to PATH.
+	echo.
+	echo.If you don't have Sphinx installed, grab it from
+	echo.http://sphinx-doc.org/
+	exit /b 1
+)
+
+%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
+goto end
+
+:help
+%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
+
+:end
+popd
diff --git a/doc/requirements.txt b/doc/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7d7a7bcf1119d2c8b3d49df0d59bb8a8f8183d7a
--- /dev/null
+++ b/doc/requirements.txt
@@ -0,0 +1,8 @@
+# SPDX-FileCopyrightText: 2020 Intel Corporation
+#
+# SPDX-License-Identifier: MIT
+
+reuse
+Sphinx
+sphinx-book-theme
+sphinxcontrib-spelling
diff --git a/doc/source/_static/favicons.png b/doc/source/_static/favicons.png
new file mode 100644
index 0000000000000000000000000000000000000000..f450376b19e2d945e6d2da8b329de8aed320a9b7
Binary files /dev/null and b/doc/source/_static/favicons.png differ
diff --git a/doc/source/_static/oneAPI-rgb-rev-100.png b/doc/source/_static/oneAPI-rgb-rev-100.png
new file mode 100644
index 0000000000000000000000000000000000000000..58d2d5c54e586b53d027d39236038dc60f5fea94
Binary files /dev/null and b/doc/source/_static/oneAPI-rgb-rev-100.png differ
diff --git a/doc/source/conf.py b/doc/source/conf.py
new file mode 100644
index 0000000000000000000000000000000000000000..a389166bca79695a2c439952c9cd0b4c8d6756ae
--- /dev/null
+++ b/doc/source/conf.py
@@ -0,0 +1,67 @@
+# Configuration file for the Sphinx documentation builder.
+#
+# This file only contains a selection of the most common options. For a full
+# list see the documentation:
+# https://www.sphinx-doc.org/en/master/usage/configuration.html
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+
+# -- Project information -----------------------------------------------------
+
+project = 'Intel® oneAPI CI Samples'
+copyright = '2020 Intel Corporation'
+author = 'Intel Corporation'
+
+
+# -- General configuration ---------------------------------------------------
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = []
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = []
+
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'sphinx_book_theme'
+html_title = "Intel® oneAPI CI Samples Documentation"
+html_logo = '_static/oneAPI-rgb-rev-100.png'
+html_favicon = '_static/favicons.png'
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'sphinx_book_theme'
+
+html_theme_options = {
+    'repository_url': 'https://github.com/oneapi-src/oneapi-ci',
+    'path_to_docs': 'doc/source',
+    'use_issues_button': True,
+    'use_edit_page_button': True,
+    'repository_branch': 'master',
+}
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
diff --git a/doc/source/index.rst b/doc/source/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..f8b988054bd0de83e5711db3b9d3e4856f1da41e
--- /dev/null
+++ b/doc/source/index.rst
@@ -0,0 +1,94 @@
+.. toctree::
+   :maxdepth: 2
+
+=====================================
+Components available for installation
+=====================================
+
+Windows, Web installer
+======================
+
+Intel\ |r| oneAPI Base Toolkit
+------------------------------
+.. include:: list_components/windows_basekit.txt
+   :literal:
+
+Intel\ |r| oneAPI HPC Toolkit
+-----------------------------
+.. include:: list_components/windows_hpckit.txt
+   :literal:
+
+Intel\ |r| oneAPI IoT Toolkit
+-----------------------------
+.. include:: list_components/windows_iotkit.txt
+   :literal:
+
+Intel\ |r| oneAPI Rendering Toolkit
+-----------------------------------
+.. include:: list_components/windows_renderkit.txt
+   :literal:
+
+Linux, Web installer
+====================
+
+Intel\ |r| oneAPI Base Toolkit
+------------------------------
+.. include:: list_components/linux_basekit.txt
+   :literal:
+
+Intel\ |r| oneAPI HPC Toolkit
+-----------------------------
+.. include:: list_components/linux_hpckit.txt
+   :literal:
+
+Intel\ |r| oneAPI IoT Toolkit
+-----------------------------
+.. include:: list_components/linux_iotkit.txt
+   :literal:
+
+Intel\ |r| AI Analytics Toolkit
+-------------------------------
+.. include:: list_components/linux_aikit.txt
+   :literal:
+
+Intel\ |r| oneAPI DL Framework Developer Toolkit
+------------------------------------------------
+.. include:: list_components/linux_dlfdkit.txt
+   :literal:
+
+Intel\ |r| oneAPI Rendering Toolkit
+-----------------------------------
+.. include:: list_components/linux_renderkit.txt
+   :literal:
+
+Linux, APT
+==========
+
+.. include:: list_components/linux_yum_dnf.txt
+   :literal:
+
+Linux, YUM/DNF
+==============
+
+.. include:: list_components/linux_apt.txt
+   :literal:
+
+MacOS, Web installer
+====================
+
+Intel\ |r| oneAPI Base Toolkit
+------------------------------
+.. include:: list_components/macos_basekit.txt
+   :literal:
+
+Intel\ |r| oneAPI HPC Toolkit
+-----------------------------
+.. include:: list_components/macos_hpckit.txt
+   :literal:
+
+Intel\ |r| oneAPI Rendering Toolkit
+-----------------------------------
+.. include:: list_components/macos_renderkit.txt
+   :literal:
+
+.. |r| unicode:: U+000AE
diff --git a/doc/source/list_components/linux_aikit.txt b/doc/source/list_components/linux_aikit.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5e7746d83e6fea0f7ae3910c1ab298e40bb76659
--- /dev/null
+++ b/doc/source/list_components/linux_aikit.txt
@@ -0,0 +1 @@
+Content is generated by CI job.
diff --git a/doc/source/list_components/linux_apt.txt b/doc/source/list_components/linux_apt.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5e7746d83e6fea0f7ae3910c1ab298e40bb76659
--- /dev/null
+++ b/doc/source/list_components/linux_apt.txt
@@ -0,0 +1 @@
+Content is generated by CI job.
diff --git a/doc/source/list_components/linux_basekit.txt b/doc/source/list_components/linux_basekit.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5e7746d83e6fea0f7ae3910c1ab298e40bb76659
--- /dev/null
+++ b/doc/source/list_components/linux_basekit.txt
@@ -0,0 +1 @@
+Content is generated by CI job.
diff --git a/doc/source/list_components/linux_dlfdkit.txt b/doc/source/list_components/linux_dlfdkit.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5e7746d83e6fea0f7ae3910c1ab298e40bb76659
--- /dev/null
+++ b/doc/source/list_components/linux_dlfdkit.txt
@@ -0,0 +1 @@
+Content is generated by CI job.
diff --git a/doc/source/list_components/linux_hpckit.txt b/doc/source/list_components/linux_hpckit.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5e7746d83e6fea0f7ae3910c1ab298e40bb76659
--- /dev/null
+++ b/doc/source/list_components/linux_hpckit.txt
@@ -0,0 +1 @@
+Content is generated by CI job.
diff --git a/doc/source/list_components/linux_iotkit.txt b/doc/source/list_components/linux_iotkit.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5e7746d83e6fea0f7ae3910c1ab298e40bb76659
--- /dev/null
+++ b/doc/source/list_components/linux_iotkit.txt
@@ -0,0 +1 @@
+Content is generated by CI job.
diff --git a/doc/source/list_components/linux_renderkit.txt b/doc/source/list_components/linux_renderkit.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5e7746d83e6fea0f7ae3910c1ab298e40bb76659
--- /dev/null
+++ b/doc/source/list_components/linux_renderkit.txt
@@ -0,0 +1 @@
+Content is generated by CI job.
diff --git a/doc/source/list_components/linux_yum_dnf.txt b/doc/source/list_components/linux_yum_dnf.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5e7746d83e6fea0f7ae3910c1ab298e40bb76659
--- /dev/null
+++ b/doc/source/list_components/linux_yum_dnf.txt
@@ -0,0 +1 @@
+Content is generated by CI job.
diff --git a/doc/source/list_components/macos_basekit.txt b/doc/source/list_components/macos_basekit.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5e7746d83e6fea0f7ae3910c1ab298e40bb76659
--- /dev/null
+++ b/doc/source/list_components/macos_basekit.txt
@@ -0,0 +1 @@
+Content is generated by CI job.
diff --git a/doc/source/list_components/macos_hpckit.txt b/doc/source/list_components/macos_hpckit.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5e7746d83e6fea0f7ae3910c1ab298e40bb76659
--- /dev/null
+++ b/doc/source/list_components/macos_hpckit.txt
@@ -0,0 +1 @@
+Content is generated by CI job.
diff --git a/doc/source/list_components/macos_renderkit.txt b/doc/source/list_components/macos_renderkit.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5e7746d83e6fea0f7ae3910c1ab298e40bb76659
--- /dev/null
+++ b/doc/source/list_components/macos_renderkit.txt
@@ -0,0 +1 @@
+Content is generated by CI job.
diff --git a/doc/source/list_components/windows_basekit.txt b/doc/source/list_components/windows_basekit.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5e7746d83e6fea0f7ae3910c1ab298e40bb76659
--- /dev/null
+++ b/doc/source/list_components/windows_basekit.txt
@@ -0,0 +1 @@
+Content is generated by CI job.
diff --git a/doc/source/list_components/windows_hpckit.txt b/doc/source/list_components/windows_hpckit.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5e7746d83e6fea0f7ae3910c1ab298e40bb76659
--- /dev/null
+++ b/doc/source/list_components/windows_hpckit.txt
@@ -0,0 +1 @@
+Content is generated by CI job.
diff --git a/doc/source/list_components/windows_iotkit.txt b/doc/source/list_components/windows_iotkit.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5e7746d83e6fea0f7ae3910c1ab298e40bb76659
--- /dev/null
+++ b/doc/source/list_components/windows_iotkit.txt
@@ -0,0 +1 @@
+Content is generated by CI job.
diff --git a/doc/source/list_components/windows_renderkit.txt b/doc/source/list_components/windows_renderkit.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5e7746d83e6fea0f7ae3910c1ab298e40bb76659
--- /dev/null
+++ b/doc/source/list_components/windows_renderkit.txt
@@ -0,0 +1 @@
+Content is generated by CI job.
diff --git a/scripts/list_components_linux.sh b/scripts/list_components_linux.sh
index 5af58e659a3d7b7939a73a58f6b7d84bc90732e1..8bad3aa2e42b00b8a0f4d52ff2cabf316a9e37fa 100755
--- a/scripts/list_components_linux.sh
+++ b/scripts/list_components_linux.sh
@@ -5,13 +5,15 @@
 # SPDX-License-Identifier: MIT
 
 URL=$1
+FILENAME=$2
 
 curl --output webimage.sh --url "$URL" --retry 5 --retry-delay 5
 chmod +x webimage.sh
 ./webimage.sh -x -f webimage_extracted --log extract.log
 rm -rf webimage.sh
 WEBIMAGE_NAME=$(ls -1 webimage_extracted/)
-webimage_extracted/"$WEBIMAGE_NAME"/bootstrapper --list-components
+webimage_extracted/"$WEBIMAGE_NAME"/bootstrapper --list-components > "$FILENAME"
 installer_exit_code=$?
+cat "$FILENAME"
 rm -rf webimage_extracted
 exit $installer_exit_code
diff --git a/scripts/list_components_linux_apt.sh b/scripts/list_components_linux_apt.sh
index ed3b3b157f9a22e9023011f8dee74bf4eb7ffe6b..308818a31ced446c27ed85eeb1a52589ebfa53cf 100755
--- a/scripts/list_components_linux_apt.sh
+++ b/scripts/list_components_linux_apt.sh
@@ -4,4 +4,6 @@
 #
 # SPDX-License-Identifier: MIT
 
-sudo apt-cache search ^intel-
+FILENAME=$1
+
+sudo apt-cache search ^intel- | sudo tee "$FILENAME"
diff --git a/scripts/list_components_linux_dnf.sh b/scripts/list_components_linux_dnf.sh
index 4e54bc6589aee8b5012dc8280551207da7827518..29a71b36cb9c035803e76208c2e581742e868fcc 100755
--- a/scripts/list_components_linux_dnf.sh
+++ b/scripts/list_components_linux_dnf.sh
@@ -4,4 +4,6 @@
 #
 # SPDX-License-Identifier: MIT
 
-sudo dnf -y --disablerepo="*" --enablerepo="oneAPI" list available
+FILENAME=$1
+
+sudo dnf -y --disablerepo="*" --enablerepo="oneAPI" list available | sudo tee "$FILENAME"
diff --git a/scripts/list_components_macos.sh b/scripts/list_components_macos.sh
index 0722d75aec8c588c302fcbdf00ae4acee66f4ede..5934003dfd796a06817a8672665b4d5be3fe7784 100755
--- a/scripts/list_components_macos.sh
+++ b/scripts/list_components_macos.sh
@@ -5,10 +5,11 @@
 # SPDX-License-Identifier: MIT
 
 URL=$1
+FILENAME=$2
 
 curl --output webimage.dmg --url "$URL" --retry 5 --retry-delay 5
 hdiutil attach webimage.dmg -quiet
-sudo /Volumes/"$(basename "$URL" .dmg)"/bootstrapper.app/Contents/MacOS/bootstrapper --list-components
-hdiutil detach /Volumes/"$(basename "$URL" .dmg)" -quiet
+sudo /Volumes/"$(basename "$URL" .dmg)"/bootstrapper.app/Contents/MacOS/bootstrapper --list-components | sudo tee "$FILENAME"
 installer_exit_code=$?
+hdiutil detach /Volumes/"$(basename "$URL" .dmg)" -quiet
 exit $installer_exit_code
diff --git a/scripts/list_components_windows.bat b/scripts/list_components_windows.bat
index 3c91170971963a86436fed6a9db26a25d094ab73..6176f08f8d1cbc6a1802a5514d1047b5700fcd1f 100644
--- a/scripts/list_components_windows.bat
+++ b/scripts/list_components_windows.bat
@@ -3,8 +3,12 @@ REM
 REM SPDX-License-Identifier: MIT
 
 set URL=%1
+set FILENAME=%2
 
 curl.exe --output webimage.exe --url %URL% --retry 5 --retry-delay 5
 start /b /wait webimage.exe -s -x -f webimage_extracted --log extract.log
 del webimage.exe
-webimage_extracted\bootstrapper.exe --list-components
+webimage_extracted\bootstrapper.exe --list-components > %FILENAME%
+installer_exit_code=%ERRORLEVEL%
+type %FILENAME%
+exit /b %installer_exit_code%