brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.2 KiB · f621bb1 Raw
216 lines · yaml
1# LLVM Documentation CI2# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3# See https://llvm.org/LICENSE.txt for license information.4# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5 6name: "Test documentation build"7 8permissions:9  contents: read10 11on:12  push:13    branches:14      - 'main'15    paths:16      - 'llvm/docs/**'17      - 'clang/docs/**'18      - 'clang/include/clang/Basic/AttrDocs.td'19      - 'clang/include/clang/Driver/ClangOptionDocs.td'20      - 'clang/include/clang/Basic/DiagnosticDocs.td'21      - 'clang-tools-extra/docs/**'22      - 'lldb/docs/**'23      - 'libunwind/docs/**'24      - 'libcxx/docs/**'25      - 'libc/docs/**'26      - 'lld/docs/**'27      - 'openmp/docs/**'28      - 'polly/docs/**'29      - 'flang/docs/**'30      - 'flang/include/flang/Optimizer/Dialect/FIROps.td'31      - '.github/workflows/docs.yml'32  pull_request:33    paths:34      - 'llvm/docs/**'35      - 'clang/docs/**'36      - 'clang/include/clang/Basic/AttrDocs.td'37      - 'clang/include/clang/Driver/ClangOptionDocs.td'38      - 'clang/include/clang/Basic/DiagnosticDocs.td'39      - 'clang-tools-extra/docs/**'40      - 'lldb/docs/**'41      - 'libunwind/docs/**'42      - 'libcxx/docs/**'43      - 'libc/docs/**'44      - 'lld/docs/**'45      - 'openmp/docs/**'46      - 'polly/docs/**'47      - 'flang/docs/**'48      - 'flang/include/flang/Optimizer/Dialect/FIROps.td'49      - '.github/workflows/docs.yml'50 51jobs:52  check-docs-build:53    name: "Test documentation build"54    runs-on: ubuntu-24.0455    if: github.repository == 'llvm/llvm-project'56    steps:57      - name: Fetch LLVM sources58        uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.059        with:60          fetch-depth: 261      - name: Get subprojects that have doc changes62        id: docs-changed-subprojects63        uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47.0.064        with:65          skip_initial_fetch: true66          base_sha: 'HEAD~1'67          sha: 'HEAD'68          files_yaml: |69            llvm:70              - 'llvm/docs/**'71            clang:72              - 'clang/docs/**'73              - 'clang/include/clang/Basic/AttrDocs.td'74              - 'clang/include/clang/Driver/ClangOptionDocs.td'75              - 'clang/include/clang/Basic/DiagnosticDocs.td'76            clang-tools-extra:77              - 'clang-tools-extra/docs/**'78            lldb:79              - 'lldb/docs/**'80            libunwind:81              - 'libunwind/docs/**'82            libcxx:83              - 'libcxx/docs/**'84            libc:85              - 'libc/docs/**'86            lld:87              - 'lld/docs/**'88            openmp:89              - 'openmp/docs/**'90            polly:91              - 'polly/docs/**'92            flang:93              - 'flang/docs/**'94              - 'flang/include/flang/Optimizer/Dialect/FIROps.td'95            workflow:96              - '.github/workflows/docs.yml'97      - name: Setup Python env98        uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.099        with:100          python-version: '3.14'101          cache: 'pip'102          cache-dependency-path: 'llvm/docs/requirements-hashed.txt'103      - name: Install python dependencies104        run: pip install -r llvm/docs/requirements-hashed.txt105      - name: Install system dependencies106        run: |107          sudo apt-get update108          # swig and graphviz are lldb specific dependencies109          sudo apt-get install -y cmake ninja-build swig graphviz110      - name: Setup output folder111        run: mkdir built-docs112      - name: Build LLVM docs113        if: |114          steps.docs-changed-subprojects.outputs.llvm_any_changed == 'true' ||115          steps.docs-changed-subprojects.outputs.workflow_any_changed == 'true'116        run: |117          cmake -B llvm-build -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_SPHINX=ON ./llvm118          TZ=UTC ninja -C llvm-build docs-llvm-html docs-llvm-man119          mkdir built-docs/llvm120          cp -r llvm-build/docs/* built-docs/llvm/121      - name: Build Clang docs122        if: |123          steps.docs-changed-subprojects.outputs.clang_any_changed == 'true' ||124          steps.docs-changed-subprojects.outputs.workflow_any_changed == 'true'125        run: |126          cmake -B clang-build -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang" -DLLVM_ENABLE_SPHINX=ON ./llvm127          TZ=UTC ninja -C clang-build docs-clang-html docs-clang-man128          mkdir built-docs/clang129          cp -r clang-build/docs/* built-docs/clang/130      - name: Build clang-tools-extra docs131        if: |132          steps.docs-changed-subprojects.outputs.clang-tools-extra_any_changed == 'true' ||133          steps.docs-changed-subprojects.outputs.workflow_any_changed == 'true'134        run: |135          cmake -B clang-tools-extra-build -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" -DLLVM_ENABLE_SPHINX=ON ./llvm136          TZ=UTC ninja -C clang-tools-extra-build docs-clang-tools-html docs-clang-tools-man137          mkdir built-docs/clang-tools-extra138          cp -r clang-tools-extra-build/docs/* built-docs/clang-tools-extra/139      - name: Build LLDB docs140        if: |141          steps.docs-changed-subprojects.outputs.lldb_any_changed == 'true' ||142          steps.docs-changed-subprojects.outputs.workflow_any_changed == 'true'143        run: |144          cmake -B lldb-build -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang;lldb" -DLLVM_ENABLE_SPHINX=ON ./llvm145          TZ=UTC ninja -C lldb-build docs-lldb-html docs-lldb-man146          mkdir built-docs/lldb147          cp -r lldb-build/docs/* built-docs/lldb/148      - name: Build libunwind docs149        if: |150          steps.docs-changed-subprojects.outputs.libunwind_any_changed == 'true' ||151          steps.docs-changed-subprojects.outputs.workflow_any_changed == 'true'152        run: |153          cmake -B libunwind-build -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_RUNTIMES="libunwind" -DLLVM_ENABLE_SPHINX=ON ./runtimes154          TZ=UTC ninja -C libunwind-build docs-libunwind-html155          mkdir built-docs/libunwind156          cp -r libunwind-build/libunwind/docs/* built-docs/libunwind157      - name: Build libcxx docs158        if: |159          steps.docs-changed-subprojects.outputs.libcxx_any_changed == 'true' ||160          steps.docs-changed-subprojects.outputs.workflow_any_changed == 'true'161        run: |162          cmake -B libcxx-build -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_RUNTIMES="libcxxabi;libcxx;libunwind" -DLLVM_ENABLE_SPHINX=ON ./runtimes163          TZ=UTC ninja -C libcxx-build docs-libcxx-html164          mkdir built-docs/libcxx165          cp -r libcxx-build/libcxx/docs/* built-docs/libcxx/166      - name: Build libc docs167        if: |168          steps.docs-changed-subprojects.outputs.libc_any_changed == 'true' ||169          steps.docs-changed-subprojects.outputs.workflow_any_changed == 'true'170        run: |171          cmake -B libc-build -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_RUNTIMES="libc" -DLLVM_ENABLE_SPHINX=ON ./runtimes172          TZ=UTC ninja -C libc-build docs-libc-html173          mkdir built-docs/libc174          cp -r libc-build/libc/docs/* built-docs/libc/175      - name: Build LLD docs176        if: |177          steps.docs-changed-subprojects.outputs.lld_any_changed == 'true' ||178          steps.docs-changed-subprojects.outputs.workflow_any_changed == 'true'179        run: |180          cmake -B lld-build -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="lld" -DLLVM_ENABLE_SPHINX=ON ./llvm181          TZ=UTC ninja -C lld-build docs-lld-html182          mkdir built-docs/lld183          cp -r lld-build/docs/* built-docs/lld/184      - name: Build OpenMP docs185        if: |186          steps.docs-changed-subprojects.outputs.openmp_any_changed == 'true' ||187          steps.docs-changed-subprojects.outputs.workflow_any_changed == 'true'188        run: |189          cmake -B openmp-build -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang;openmp" -DLLVM_ENABLE_SPHINX=ON ./llvm190          TZ=UTC ninja -C openmp-build docs-openmp-html191          mkdir built-docs/openmp192          cp -r openmp-build/docs/* built-docs/openmp/193      - name: Build Polly docs194        if: |195          steps.docs-changed-subprojects.outputs.polly_any_changed == 'true' ||196          steps.docs-changed-subprojects.outputs.workflow_any_changed == 'true'197        run: |198          cmake -B polly-build -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="polly" -DLLVM_ENABLE_SPHINX=ON ./llvm199          TZ=UTC ninja -C polly-build docs-polly-html docs-polly-man200          mkdir built-docs/polly201          cp -r polly-build/docs/* built-docs/polly/202      - name: Build Flang docs203        if: |204          steps.docs-changed-subprojects.outputs.flang_any_changed == 'true' ||205          steps.docs-changed-subprojects.outputs.workflow_any_changed == 'true'206        run: |207          cmake -B flang-build -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang;mlir;flang" -DLLVM_ENABLE_SPHINX=ON ./llvm208          TZ=UTC ninja -C flang-build docs-flang-html docs-flang-man209          mkdir built-docs/flang210          cp -r flang-build/docs/* built-docs/flang/211      - name: Upload docs212        uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0213        with:214          name: docs-output215          path: built-docs/216