[llvm] workflows: Merge release-doxygen into release-documenation (PR #214366)

Tom Stellard via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 7 11:01:57 PDT 2026


https://github.com/tstellar updated https://github.com/llvm/llvm-project/pull/214366

>From 9f1ef7ea33856a8f1cb689ceca869d5b2f73376e Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Tue, 28 Jul 2026 22:48:55 -0700
Subject: [PATCH 01/35] workflows/release-documentation: Rework workflow to
 make it testable

Removed the environment declaration from the validation job and split
out the www-releases update into a separate job.  This makes it safe
and possible to add a pull_request trigger so we can at least test
building the documentation when someone submits a pull request.
---
 .github/workflows/release-documentation.yml | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index c19148017cfec..2dc9b15d6c9b9 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -67,6 +67,11 @@ jobs:
     outputs:
       man-page-digest: ${{ steps.man-page-digest.outputs.man-page-digest }}
       man-page-artifact-id: ${{ steps.man-page-artifact-upload.outputs.artifact-id }}
+
+      man-page-release-version: ${{ steps.vars.outputs.man-page-release-version }}
+      man-page-tarball-name: ${{ steps.vars.outputs.man-page-tarball-name }}
+      man-page-upload: ${{ steps.vars.outputs.man-page-upload }}
+      man-page-attestation-name: ${{ steps.vars.outputs.man-page-attestation-name }}
     steps:
       - name: Checkout LLVM
         uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3

>From f6f2d598d0bd68d62245d19c294fd1d2bf680095 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 29 Jul 2026 11:18:49 -0700
Subject: [PATCH 02/35] More fixes

---
 .github/workflows/release-documentation.yml | 27 ++++++++++++++++-----
 1 file changed, 21 insertions(+), 6 deletions(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index 2dc9b15d6c9b9..bbe06ce6f578f 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -64,26 +64,41 @@ jobs:
     if: >-
       github.repository_owner == 'llvm' &&
       github.event.action != 'closed'
+    permissions:
+      contents: read
     outputs:
       man-page-digest: ${{ steps.man-page-digest.outputs.man-page-digest }}
       man-page-artifact-id: ${{ steps.man-page-artifact-upload.outputs.artifact-id }}
 
       man-page-release-version: ${{ steps.vars.outputs.man-page-release-version }}
-      man-page-tarball-name: ${{ steps.vars.outputs.man-page-tarball-name }}
       man-page-upload: ${{ steps.vars.outputs.man-page-upload }}
       man-page-attestation-name: ${{ steps.vars.outputs.man-page-attestation-name }}
     steps:
-      - name: Checkout LLVM
-        uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
-        with:
-          persist-credentials: false
-
       - name: Validate Input
         if: inputs.release-version
         uses: ./.github/workflows/validate-release-version
         with:
           release-version: ${{ inputs.release-version }}
 
+      - name: Collect Variables
+        id: vars
+        env:
+          INPUTS_RELEASE_VERSION: ${{ inputs.release-version }}
+          UPLOAD_MAN_PAGES: ${{ inputs.upload }}
+        shell: bash
+        run: |
+          {
+            echo "man-page-release-version=$INPUTS_RELEASE_VERSION"
+            echo "man-page-ref=llvmorg-$INPUTS_RELEASE_VERSION"
+            echo "man-page-upload=$UPLOAD_MAN_PAGES"
+            echo "man-page-attestation-name=$RUNNER_OS-$RUNNER_ARCH-release-man-page-attestation"
+          } >> "$GITHUB_OUTPUT"
+
+      - name: Checkout LLVM
+        uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+        with:
+          persist-credentials: false
+
       - name: Setup Python env
         uses: actions/setup-python at ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
         with:

>From 34926480dfa181e822a48808d993c4752ebcb89b Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 29 Jul 2026 14:07:40 -0700
Subject: [PATCH 03/35] Cleanups

---
 .github/workflows/release-documentation.yml | 18 ------------------
 1 file changed, 18 deletions(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index bbe06ce6f578f..9d93bcc414ae1 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -69,10 +69,6 @@ jobs:
     outputs:
       man-page-digest: ${{ steps.man-page-digest.outputs.man-page-digest }}
       man-page-artifact-id: ${{ steps.man-page-artifact-upload.outputs.artifact-id }}
-
-      man-page-release-version: ${{ steps.vars.outputs.man-page-release-version }}
-      man-page-upload: ${{ steps.vars.outputs.man-page-upload }}
-      man-page-attestation-name: ${{ steps.vars.outputs.man-page-attestation-name }}
     steps:
       - name: Validate Input
         if: inputs.release-version
@@ -80,20 +76,6 @@ jobs:
         with:
           release-version: ${{ inputs.release-version }}
 
-      - name: Collect Variables
-        id: vars
-        env:
-          INPUTS_RELEASE_VERSION: ${{ inputs.release-version }}
-          UPLOAD_MAN_PAGES: ${{ inputs.upload }}
-        shell: bash
-        run: |
-          {
-            echo "man-page-release-version=$INPUTS_RELEASE_VERSION"
-            echo "man-page-ref=llvmorg-$INPUTS_RELEASE_VERSION"
-            echo "man-page-upload=$UPLOAD_MAN_PAGES"
-            echo "man-page-attestation-name=$RUNNER_OS-$RUNNER_ARCH-release-man-page-attestation"
-          } >> "$GITHUB_OUTPUT"
-
       - name: Checkout LLVM
         uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
         with:

>From 5c78755427723fd90c05234cf51239fbd3d59f42 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 29 Jul 2026 14:20:58 -0700
Subject: [PATCH 04/35] Fix build of libcxx docs

---
 llvm/utils/release/build-docs.sh | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

diff --git a/llvm/utils/release/build-docs.sh b/llvm/utils/release/build-docs.sh
index 3c80af1317d11..ff79437d8adca 100755
--- a/llvm/utils/release/build-docs.sh
+++ b/llvm/utils/release/build-docs.sh
@@ -143,22 +143,14 @@ fi
 
 cmake -G Ninja $srcdir -B $builddir \
                -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;polly;flang${extra_man_page_projects}" \
+               -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind;${extra_man_page_runtimes}" \
                -DCMAKE_BUILD_TYPE=Release \
                -DLLVM_BUILD_DOCS=ON \
                $sphinx_flag \
                $doxygen_flag \
                $man_page_flag
 
-ninja -C $builddir $sphinx_targets $doxygen_targets $man_page_targets
-
-cmake -G Ninja $srcdir/../runtimes -B $builddir/runtimes-doc \
-               -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind;${extra_man_page_runtimes}" \
-               -DLLVM_ENABLE_SPHINX=ON \
-               -DLLVM_BUILD_DOCS=ON \
-               -DSPHINX_WARNINGS_AS_ERRORS=OFF
-
-ninja -C $builddir/runtimes-doc \
-               docs-libcxx-html
+ninja -C $builddir $sphinx_targets $doxygen_targets $man_page_targets docs-libcxx-html
 
 if [ "${no_man_page}" != "yes" ]; then
   output="llvm_man_pages-${release}"
@@ -190,5 +182,5 @@ done
 # Keep the documentation for the runtimes under /projects/ to avoid breaking existing links.
 for d in libcxx/docs/; do
   mkdir -p $html_dir/projects/$d
-  mv $builddir/runtimes-doc/$d/html/* $html_dir/projects/$d/
+  mv $builddir/$d/html/* $html_dir/projects/$d/
 done

>From 2926e220d4584a143dbb6998f003cccc21c57f29 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 29 Jul 2026 14:27:50 -0700
Subject: [PATCH 05/35] Fix typo

---
 llvm/utils/release/build-docs.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/utils/release/build-docs.sh b/llvm/utils/release/build-docs.sh
index ff79437d8adca..7ec1c0753e116 100755
--- a/llvm/utils/release/build-docs.sh
+++ b/llvm/utils/release/build-docs.sh
@@ -128,7 +128,7 @@ if [ "${no_man_pages}" != "yes" ]; then
   install_prefix=${builddir}/install
   man_page_flag=" -DLLVM_ENABLE_SPHINX=ON -DSPHINX_WARNINGS_AS_ERRORS=OFF -DSPHINX_OUTPUT_MAN:BOOL=ON -DCMAKE_INSTALL_PREFIX=${install_prefix}"
   extra_man_page_projects=";lldb;mlir;bolt"
-  extra_man_page_runtimes=";compiler-rt;openmp;"
+  extra_man_page_runtimes=";compiler-rt;openmp"
 else
   echo "Man pages: disabled"
 fi

>From 464929aa5307d1b8c6d372ba86dd320e1fd8d674 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 29 Jul 2026 14:42:26 -0700
Subject: [PATCH 06/35] Fix typo

---
 llvm/utils/release/build-docs.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/utils/release/build-docs.sh b/llvm/utils/release/build-docs.sh
index 7ec1c0753e116..e8cc8604196cc 100755
--- a/llvm/utils/release/build-docs.sh
+++ b/llvm/utils/release/build-docs.sh
@@ -143,7 +143,7 @@ fi
 
 cmake -G Ninja $srcdir -B $builddir \
                -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;polly;flang${extra_man_page_projects}" \
-               -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind;${extra_man_page_runtimes}" \
+               -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind${extra_man_page_runtimes}" \
                -DCMAKE_BUILD_TYPE=Release \
                -DLLVM_BUILD_DOCS=ON \
                $sphinx_flag \

>From 566be03dbb1f941249932a9171cb2a55ed20b308 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 29 Jul 2026 16:00:55 -0700
Subject: [PATCH 07/35] Revert "Fix typo"

This reverts commit a5d98fb1210839d7b0fe58b0be77ed6d379226b4.
---
 llvm/utils/release/build-docs.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/utils/release/build-docs.sh b/llvm/utils/release/build-docs.sh
index e8cc8604196cc..7ec1c0753e116 100755
--- a/llvm/utils/release/build-docs.sh
+++ b/llvm/utils/release/build-docs.sh
@@ -143,7 +143,7 @@ fi
 
 cmake -G Ninja $srcdir -B $builddir \
                -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;polly;flang${extra_man_page_projects}" \
-               -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind${extra_man_page_runtimes}" \
+               -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind;${extra_man_page_runtimes}" \
                -DCMAKE_BUILD_TYPE=Release \
                -DLLVM_BUILD_DOCS=ON \
                $sphinx_flag \

>From 790f92448122de398211474548b0af0df74fe57e Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 29 Jul 2026 16:01:00 -0700
Subject: [PATCH 08/35] Revert "Fix typo"

This reverts commit f90c6dd3e5c5855b327b059982eb94d0ab3a0f73.
---
 llvm/utils/release/build-docs.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/utils/release/build-docs.sh b/llvm/utils/release/build-docs.sh
index 7ec1c0753e116..ff79437d8adca 100755
--- a/llvm/utils/release/build-docs.sh
+++ b/llvm/utils/release/build-docs.sh
@@ -128,7 +128,7 @@ if [ "${no_man_pages}" != "yes" ]; then
   install_prefix=${builddir}/install
   man_page_flag=" -DLLVM_ENABLE_SPHINX=ON -DSPHINX_WARNINGS_AS_ERRORS=OFF -DSPHINX_OUTPUT_MAN:BOOL=ON -DCMAKE_INSTALL_PREFIX=${install_prefix}"
   extra_man_page_projects=";lldb;mlir;bolt"
-  extra_man_page_runtimes=";compiler-rt;openmp"
+  extra_man_page_runtimes=";compiler-rt;openmp;"
 else
   echo "Man pages: disabled"
 fi

>From ec347c12e4bc6fc1d9a6160cc2e0978fffc7d159 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 29 Jul 2026 16:01:02 -0700
Subject: [PATCH 09/35] Revert "Fix build of libcxx docs"

This reverts commit 179432674685f1eb5a7546f1fa1434ab75fee36f.
---
 llvm/utils/release/build-docs.sh | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/llvm/utils/release/build-docs.sh b/llvm/utils/release/build-docs.sh
index ff79437d8adca..3c80af1317d11 100755
--- a/llvm/utils/release/build-docs.sh
+++ b/llvm/utils/release/build-docs.sh
@@ -143,14 +143,22 @@ fi
 
 cmake -G Ninja $srcdir -B $builddir \
                -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;polly;flang${extra_man_page_projects}" \
-               -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind;${extra_man_page_runtimes}" \
                -DCMAKE_BUILD_TYPE=Release \
                -DLLVM_BUILD_DOCS=ON \
                $sphinx_flag \
                $doxygen_flag \
                $man_page_flag
 
-ninja -C $builddir $sphinx_targets $doxygen_targets $man_page_targets docs-libcxx-html
+ninja -C $builddir $sphinx_targets $doxygen_targets $man_page_targets
+
+cmake -G Ninja $srcdir/../runtimes -B $builddir/runtimes-doc \
+               -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind;${extra_man_page_runtimes}" \
+               -DLLVM_ENABLE_SPHINX=ON \
+               -DLLVM_BUILD_DOCS=ON \
+               -DSPHINX_WARNINGS_AS_ERRORS=OFF
+
+ninja -C $builddir/runtimes-doc \
+               docs-libcxx-html
 
 if [ "${no_man_page}" != "yes" ]; then
   output="llvm_man_pages-${release}"
@@ -182,5 +190,5 @@ done
 # Keep the documentation for the runtimes under /projects/ to avoid breaking existing links.
 for d in libcxx/docs/; do
   mkdir -p $html_dir/projects/$d
-  mv $builddir/$d/html/* $html_dir/projects/$d/
+  mv $builddir/runtimes-doc/$d/html/* $html_dir/projects/$d/
 done

>From 976944dcce2811d0189418c6823497f1ef0ec2cc Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 29 Jul 2026 16:25:07 -0700
Subject: [PATCH 10/35] debug

---
 llvm/utils/release/build-docs.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/utils/release/build-docs.sh b/llvm/utils/release/build-docs.sh
index 3c80af1317d11..110ad31b7eb4e 100755
--- a/llvm/utils/release/build-docs.sh
+++ b/llvm/utils/release/build-docs.sh
@@ -20,7 +20,7 @@
 #   * pip install --user -r ./llvm/docs/requirements.txt
 #===------------------------------------------------------------------------===#
 
-set -e
+set -ex
 
 builddir=docs-build
 srcdir=$(readlink -f $(dirname "$(readlink -f "$0")")/../..)

>From a137a4977bcc10a2b7b8dcea840ce3bb1d08c995 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 29 Jul 2026 17:12:40 -0700
Subject: [PATCH 11/35] Fixes and cleanups

---
 .github/workflows/release-documentation.yml | 10 +++++-----
 llvm/utils/release/build-docs.sh            |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index 9d93bcc414ae1..63c8660782007 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -70,17 +70,17 @@ jobs:
       man-page-digest: ${{ steps.man-page-digest.outputs.man-page-digest }}
       man-page-artifact-id: ${{ steps.man-page-artifact-upload.outputs.artifact-id }}
     steps:
+      - name: Checkout LLVM
+        uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+        with:
+          persist-credentials: false
+
       - name: Validate Input
         if: inputs.release-version
         uses: ./.github/workflows/validate-release-version
         with:
           release-version: ${{ inputs.release-version }}
 
-      - name: Checkout LLVM
-        uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
-        with:
-          persist-credentials: false
-
       - name: Setup Python env
         uses: actions/setup-python at ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
         with:
diff --git a/llvm/utils/release/build-docs.sh b/llvm/utils/release/build-docs.sh
index 110ad31b7eb4e..3c80af1317d11 100755
--- a/llvm/utils/release/build-docs.sh
+++ b/llvm/utils/release/build-docs.sh
@@ -20,7 +20,7 @@
 #   * pip install --user -r ./llvm/docs/requirements.txt
 #===------------------------------------------------------------------------===#
 
-set -ex
+set -e
 
 builddir=docs-build
 srcdir=$(readlink -f $(dirname "$(readlink -f "$0")")/../..)

>From 59982647276a54d91847d4cd59aaf3486bc9e6b7 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 30 Jul 2026 09:25:50 -0700
Subject: [PATCH 12/35] Fix

---
 .github/workflows/release-documentation.yml | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index 63c8660782007..d78cea42d0713 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -104,7 +104,11 @@ jobs:
           INPUTS_RELEASE_VERSION: ${{ inputs.release-version }}
         run: |
           ./llvm/utils/release/build-docs.sh \
+<<<<<<< HEAD
             $(test -n "$INPUTS_RELEASE_VERSION" && echo -release "$INPUTS_RELEASE_VERSION" || echo -srcdir llvm) -no-doxygen
+=======
+            $(test -n "$INPUTS_RELEASE_VERSION" && echo -release $INPUTS_RELEASE_VERSION || echo -srcdir llvm) -no-doxygen
+>>>>>>> fdd1f1c979c7 (Fix)
           echo "man-page-tarball-name=$(basename $(find . -iname 'llvm_man_pages-*.tar.xz'))" >> "$GITHUB_OUTPUT"
 
 
@@ -168,6 +172,7 @@ jobs:
           INPUTS_RELEASE_VERSION: ${{ inputs.release-version }}
         run: |
           cd www-releases
+          ls -ltr www-releases/$INPUT_RELEASE_VERSION/*
           git checkout -b $INPUTS_RELEASE_VERSION
           git add $INPUTS_RELEASE_VERSION
           git config user.email "llvmbot at llvm.org"

>From 0c24f5666bc629ff5eed13d775cf8b1f8106d7af Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 30 Jul 2026 09:27:46 -0700
Subject: [PATCH 13/35] XXX: Debug

---
 .github/workflows/release-documentation.yml | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index d78cea42d0713..24e66c7c4d538 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -137,15 +137,8 @@ jobs:
   upload-release-notes:
     name: "Upload Release Notes"
     runs-on: ubuntu-24.04
-    environment:
-      deployment: false
-      name: release
     needs:
       - release-documentation
-    if: >-
-      github.event_name != 'pull_request' &&
-      inputs.upload &&
-      !contains(inputs.release-version, 'rc')
     permissions:
       contents: read
     steps:

>From aea236e92b8a1b0c88f0dfc35f28e87dfc73eca2 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 30 Jul 2026 10:00:32 -0700
Subject: [PATCH 14/35] Debug

---
 .github/workflows/release-documentation.yml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index 24e66c7c4d538..1912a3401bbc3 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -165,7 +165,8 @@ jobs:
           INPUTS_RELEASE_VERSION: ${{ inputs.release-version }}
         run: |
           cd www-releases
-          ls -ltr www-releases/$INPUT_RELEASE_VERSION/*
+          ls -ltr *
+          ls -ltr $INPUT_RELEASE_VERSION/*
           git checkout -b $INPUTS_RELEASE_VERSION
           git add $INPUTS_RELEASE_VERSION
           git config user.email "llvmbot at llvm.org"

>From f9d217eb39a7b533bd1b6dbf6f5f2345f19c4561 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 30 Jul 2026 10:25:49 -0700
Subject: [PATCH 15/35] Remove debug

---
 .github/workflows/release-documentation.yml | 2 --
 1 file changed, 2 deletions(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index 1912a3401bbc3..a50f25c06bd84 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -165,8 +165,6 @@ jobs:
           INPUTS_RELEASE_VERSION: ${{ inputs.release-version }}
         run: |
           cd www-releases
-          ls -ltr *
-          ls -ltr $INPUT_RELEASE_VERSION/*
           git checkout -b $INPUTS_RELEASE_VERSION
           git add $INPUTS_RELEASE_VERSION
           git config user.email "llvmbot at llvm.org"

>From 3bf84290434d851c44977923e64b38c3b0190c21 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 30 Jul 2026 10:27:05 -0700
Subject: [PATCH 16/35] Revert "XXX: Debug"

This reverts commit ef443b1bebd360a4aad44d46b2a63621ccaba589.
---
 .github/workflows/release-documentation.yml | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index a50f25c06bd84..41a8b1581d255 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -137,8 +137,15 @@ jobs:
   upload-release-notes:
     name: "Upload Release Notes"
     runs-on: ubuntu-24.04
+    environment:
+      deployment: false
+      name: release
     needs:
       - release-documentation
+    if: >-
+      github.event_name != 'pull_request' &&
+      inputs.upload &&
+      !contains(inputs.release-version, 'rc')
     permissions:
       contents: read
     steps:

>From 50af94ef397726e9ad03f01da0174129b3ba2427 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 30 Jul 2026 16:56:28 -0700
Subject: [PATCH 17/35] Remove permissions

---
 .github/workflows/release-documentation.yml | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index 41a8b1581d255..63c8660782007 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -104,11 +104,7 @@ jobs:
           INPUTS_RELEASE_VERSION: ${{ inputs.release-version }}
         run: |
           ./llvm/utils/release/build-docs.sh \
-<<<<<<< HEAD
             $(test -n "$INPUTS_RELEASE_VERSION" && echo -release "$INPUTS_RELEASE_VERSION" || echo -srcdir llvm) -no-doxygen
-=======
-            $(test -n "$INPUTS_RELEASE_VERSION" && echo -release $INPUTS_RELEASE_VERSION || echo -srcdir llvm) -no-doxygen
->>>>>>> fdd1f1c979c7 (Fix)
           echo "man-page-tarball-name=$(basename $(find . -iname 'llvm_man_pages-*.tar.xz'))" >> "$GITHUB_OUTPUT"
 
 

>From 5e93d99c00275daed866e34d290ee97b697067bc Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 31 Jul 2026 16:59:35 -0700
Subject: [PATCH 18/35] workflows: Merge release-doxygen into
 release-documenation

These two workflows use the same script and have the same structure,
so it's easier just to have one job that builds both.
---
 .github/workflows/release-documentation.yml | 45 ++++++++++++++++-----
 1 file changed, 35 insertions(+), 10 deletions(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index 63c8660782007..ffd5bfffccdd3 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -69,6 +69,8 @@ jobs:
     outputs:
       man-page-digest: ${{ steps.man-page-digest.outputs.man-page-digest }}
       man-page-artifact-id: ${{ steps.man-page-artifact-upload.outputs.artifact-id }}
+      doxygen-digest: ${{ steps.man-page-digest.outputs.doxygen-digest }}
+      doxygen-artifact-id: ${{ steps.doxygen-artifact-upload.outputs.artifact-id }}
     steps:
       - name: Checkout LLVM
         uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
@@ -97,6 +99,12 @@ jobs:
               texlive-font-utils
           pip3 install --require-hashes --user -r ./llvm/docs/requirements.txt
 
+          # Install Doxygen
+          curl -L https://github.com/doxygen/doxygen/releases/download/Release_1_17_0/doxygen-1.17.0.linux.bin.tar.gz -o doxygen.tar.gz
+          echo "75419ef4f446fc1c24ef12514b574e66e898ee6f527c6ae2ad84f91a905823c2  doxygen.tar.gz" | shasum --check -
+          tar -xf doxygen.tar.gz
+          sudo install -m 755 doxygen-1.17.0/bin/doxygen /usr/local/bin/doxygen
+
       - name: Build Documentation
         id: build
         env:
@@ -104,17 +112,20 @@ jobs:
           INPUTS_RELEASE_VERSION: ${{ inputs.release-version }}
         run: |
           ./llvm/utils/release/build-docs.sh \
-            $(test -n "$INPUTS_RELEASE_VERSION" && echo -release "$INPUTS_RELEASE_VERSION" || echo -srcdir llvm) -no-doxygen
+            $(test -n "$INPUTS_RELEASE_VERSION" && echo -release "$INPUTS_RELEASE_VERSION" || echo -srcdir llvm)
           echo "man-page-tarball-name=$(basename $(find . -iname 'llvm_man_pages-*.tar.xz'))" >> "$GITHUB_OUTPUT"
+          echo "doxygen-tarball-name=$(baename $(find . -iname '*doxygen*.tar.xz')) >> "$GITHUB_OUTPUT"
 
 
-      - name: Generate sha256 digest for man page tarball
+      - name: Generate sha256 digest for tarballs
         id: man-page-digest
         shell: bash
         env:
-          TARBALL_NAME: ${{ steps.build.outputs.man-page-tarball-name }}
+          MAN_PAGE_TARBALL_NAME: ${{ steps.build.outputs.man-page-tarball-name }}
+          DOXYGEN_TARBALL_NAME: ${{ steps.build.outputs.man-page-tarball-name }}
         run: |
-            echo "man-page-digest=$(cat "$TARBALL_NAME" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
+            echo "man-page-digest=$(cat "$MAN_PAGE_TARBALL_NAME" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
+            echo "doxygen-digest=$(cat "$DOXYGEN_TARBALL_NAME" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
 
       - id: man-page-artifact-upload
         uses: actions/upload-artifact at 043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
@@ -123,6 +134,13 @@ jobs:
           path: |
             ${{ steps.build.outputs.man-page-tarball-name }}
 
+      - id: doxygen-artifact-upload
+        uses: actions/upload-artifact at 043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+        with:
+          name: doxygen
+          path: |
+            ${{ steps.build.outputs.doxygen-tarball-name }}
+
       - name: Create Release Notes Artifact
         uses: actions/upload-artifact at 043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
         with:
@@ -176,8 +194,8 @@ jobs:
           git push --force  "https://$PUSH_TOKEN@github.com/llvmbot/www-releases.git" HEAD:refs/heads/$INPUTS_RELEASE_VERSION
           gh pr create -f -B main -H llvmbot:$INPUTS_RELEASE_VERSION
 
-  upload-man-pages:
-    name: "Upload Man Pages"
+  upload-documentation:
+    name: "Upload Documentation"
     runs-on: ubuntu-24.04
     environment:
       deployment: false
@@ -190,16 +208,23 @@ jobs:
       contents: write     # For man page uploads
       id-token: write     # For artifact attestations
       attestations: write # For artifact attestations
-
+    matrix:
+      include:
+        - artifact-id: ${{ needs.release-documentation.outputs.man-page-artifact-id }}
+          attestation-name: release-man-page-attestation
+          digest: ${{ needs.release-documentation.outputs.man-page-digest }}
+        - artifact-id: ${{ needs.release-documentation.outputs.doxygen-artifact-id }}
+          attestation-name: release-doxygen-attestation
+          digest: ${{ needs.release-documentation.outputs.doxygen-digest }}
     steps:
      - name: Upload Man Page Artifacts
        id: man-page-artifact-upload
        uses: $/.github/workflows/upload-release-artifact
        with:
          release-version: ${{ inputs.release-version }}
-         artifact-id: ${{ needs.release-documentation.outputs.man-page-artifact-id }}
-         attestation-name: ${{ runner.os }}-${{ runner.arch }}-release-man-page-attestation
-         digest: ${{ needs.release-documentation.outputs.man-page-digest }}
+         artifact-id: ${{ matrix.artifact-id }}
+         attestation-name: ${{ runner.os }}-${{ runner.arch }}-${{ matrix.attestation_name }}
+         digest: ${{ matrix.digest }}
          upload: ${{ inputs.upload }}
          LLVM_TOKEN_GENERATOR_CLIENT_ID: ${{ secrets.LLVM_TOKEN_GENERATOR_CLIENT_ID }}
          LLVM_TOKEN_GENERATOR_PRIVATE_KEY: ${{ secrets.LLVM_TOKEN_GENERATOR_PRIVATE_KEY }}

>From b000cff9ea9b5ef750f2081eabb024ac13a6096d Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 31 Jul 2026 17:00:41 -0700
Subject: [PATCH 19/35] ebug

---
 .github/workflows/release-documentation.yml | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index ffd5bfffccdd3..20ec56ebe8429 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -197,13 +197,8 @@ jobs:
   upload-documentation:
     name: "Upload Documentation"
     runs-on: ubuntu-24.04
-    environment:
-      deployment: false
-      name: release
     needs:
       - release-documentation
-    if: >-
-      github.event_name != 'pull_request'
     permissions:
       contents: write     # For man page uploads
       id-token: write     # For artifact attestations

>From 7885cddf749a9eb77ab08a2fcd3bfdde82b3e1a4 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 31 Jul 2026 17:08:49 -0700
Subject: [PATCH 20/35] Fix matrix

---
 .github/workflows/release-documentation.yml | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index 20ec56ebe8429..2929ebdc53fc5 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -203,14 +203,15 @@ jobs:
       contents: write     # For man page uploads
       id-token: write     # For artifact attestations
       attestations: write # For artifact attestations
-    matrix:
-      include:
-        - artifact-id: ${{ needs.release-documentation.outputs.man-page-artifact-id }}
-          attestation-name: release-man-page-attestation
-          digest: ${{ needs.release-documentation.outputs.man-page-digest }}
-        - artifact-id: ${{ needs.release-documentation.outputs.doxygen-artifact-id }}
-          attestation-name: release-doxygen-attestation
-          digest: ${{ needs.release-documentation.outputs.doxygen-digest }}
+    strategy:
+      matrix:
+        include:
+          - artifact-id: ${{ needs.release-documentation.outputs.man-page-artifact-id }}
+            attestation-name: release-man-page-attestation
+            digest: ${{ needs.release-documentation.outputs.man-page-digest }}
+          - artifact-id: ${{ needs.release-documentation.outputs.doxygen-artifact-id }}
+            attestation-name: release-doxygen-attestation
+            digest: ${{ needs.release-documentation.outputs.doxygen-digest }}
     steps:
      - name: Upload Man Page Artifacts
        id: man-page-artifact-upload

>From 2e97201a39bfb3ca14173c745710675c67efe54a Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 31 Jul 2026 20:44:31 -0700
Subject: [PATCH 21/35] Fix

---
 .github/workflows/release-documentation.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index 2929ebdc53fc5..a728d1524de74 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -114,7 +114,7 @@ jobs:
           ./llvm/utils/release/build-docs.sh \
             $(test -n "$INPUTS_RELEASE_VERSION" && echo -release "$INPUTS_RELEASE_VERSION" || echo -srcdir llvm)
           echo "man-page-tarball-name=$(basename $(find . -iname 'llvm_man_pages-*.tar.xz'))" >> "$GITHUB_OUTPUT"
-          echo "doxygen-tarball-name=$(baename $(find . -iname '*doxygen*.tar.xz')) >> "$GITHUB_OUTPUT"
+          echo "doxygen-tarball-name=$(baename $(find . -iname '*doxygen*.tar.xz'))" >> "$GITHUB_OUTPUT"
 
 
       - name: Generate sha256 digest for tarballs

>From 02e4357802ee1323a317234573e31583dba84763 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 31 Jul 2026 21:07:04 -0700
Subject: [PATCH 22/35] Fixes

---
 .github/workflows/release-documentation.yml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index a728d1524de74..85df3bab0816d 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -114,7 +114,7 @@ jobs:
           ./llvm/utils/release/build-docs.sh \
             $(test -n "$INPUTS_RELEASE_VERSION" && echo -release "$INPUTS_RELEASE_VERSION" || echo -srcdir llvm)
           echo "man-page-tarball-name=$(basename $(find . -iname 'llvm_man_pages-*.tar.xz'))" >> "$GITHUB_OUTPUT"
-          echo "doxygen-tarball-name=$(baename $(find . -iname '*doxygen*.tar.xz'))" >> "$GITHUB_OUTPUT"
+          echo "doxygen-tarball-name=$(basename $(find . -iname '*doxygen*.tar.xz'))" >> "$GITHUB_OUTPUT"
 
 
       - name: Generate sha256 digest for tarballs
@@ -122,7 +122,7 @@ jobs:
         shell: bash
         env:
           MAN_PAGE_TARBALL_NAME: ${{ steps.build.outputs.man-page-tarball-name }}
-          DOXYGEN_TARBALL_NAME: ${{ steps.build.outputs.man-page-tarball-name }}
+          DOXYGEN_TARBALL_NAME: ${{ steps.build.outputs.doxygen-tarball-name }}
         run: |
             echo "man-page-digest=$(cat "$MAN_PAGE_TARBALL_NAME" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
             echo "doxygen-digest=$(cat "$DOXYGEN_TARBALL_NAME" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
@@ -219,7 +219,7 @@ jobs:
        with:
          release-version: ${{ inputs.release-version }}
          artifact-id: ${{ matrix.artifact-id }}
-         attestation-name: ${{ runner.os }}-${{ runner.arch }}-${{ matrix.attestation_name }}
+         attestation-name: ${{ runner.os }}-${{ runner.arch }}-${{ matrix.attestation-name }}
          digest: ${{ matrix.digest }}
          upload: ${{ inputs.upload }}
          LLVM_TOKEN_GENERATOR_CLIENT_ID: ${{ secrets.LLVM_TOKEN_GENERATOR_CLIENT_ID }}

>From 858ed7ae7c041334c130732d9626dea1bbdefdb6 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 31 Jul 2026 21:36:31 -0700
Subject: [PATCH 23/35] Debug

---
 .github/workflows/release-documentation.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index 85df3bab0816d..52e030c4bb3a0 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -113,6 +113,7 @@ jobs:
         run: |
           ./llvm/utils/release/build-docs.sh \
             $(test -n "$INPUTS_RELEASE_VERSION" && echo -release "$INPUTS_RELEASE_VERSION" || echo -srcdir llvm)
+            ls -ltr
           echo "man-page-tarball-name=$(basename $(find . -iname 'llvm_man_pages-*.tar.xz'))" >> "$GITHUB_OUTPUT"
           echo "doxygen-tarball-name=$(basename $(find . -iname '*doxygen*.tar.xz'))" >> "$GITHUB_OUTPUT"
 

>From 556c310125a3297f1ed527f1f61c0675444fd7f5 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 5 Aug 2026 13:40:49 -0700
Subject: [PATCH 24/35] Remove doxygen workflow

---
 .github/workflows/release-doxygen.yml | 130 --------------------------
 .github/workflows/release-tasks.yml   |  16 ----
 2 files changed, 146 deletions(-)
 delete mode 100644 .github/workflows/release-doxygen.yml

diff --git a/.github/workflows/release-doxygen.yml b/.github/workflows/release-doxygen.yml
deleted file mode 100644
index d0cc56c6c22d2..0000000000000
--- a/.github/workflows/release-doxygen.yml
+++ /dev/null
@@ -1,130 +0,0 @@
-name: Release Doxygen
-
-permissions:
-  contents: read
-
-on:
-  workflow_dispatch:
-    inputs:
-      release-version:
-        description: 'Release Version'
-        required: true
-        type: string
-      upload:
-        description: 'Upload documentation'
-        required: false
-        type: boolean
-
-  workflow_call:
-    inputs:
-      release-version:
-        description: 'Release Version'
-        required: true
-        type: string
-      upload:
-        description: 'Upload documentation'
-        required: false
-        type: boolean
-    secrets:
-      LLVM_TOKEN_GENERATOR_CLIENT_ID:
-        description: "Client ID for our GitHub App we use for generating access tokens."
-        required: true
-      LLVM_TOKEN_GENERATOR_PRIVATE_KEY:
-        description: "Private key for our GitHub App we use for generating access tokens."
-        required: true
-
-jobs:
-  # This job checks permissions and validates inputs to prevent potential
-  # malicious actions.  Since the release-doxygen job has contents: write
-  # permissions we need to be extra careful about who can run the job and
-  # what inputs can be provided.
-  release-doxygen-validate-input:
-    name: Release Doxygen Validate Input
-    runs-on: ubuntu-24.04
-    environment:
-      name: release
-      deployment: false
-    permissions:
-      contents: read
-    steps:
-      - uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
-        with:
-          persist-credentials: false
-          sparse-checkout: |
-            .github/workflows/
-
-      - name: Check Permissions
-        uses: ./.github/workflows/require-team-membership
-        with:
-          team-slug: llvm-release-managers
-          LLVM_TOKEN_GENERATOR_CLIENT_ID: ${{ secrets.LLVM_TOKEN_GENERATOR_CLIENT_ID }}
-          LLVM_TOKEN_GENERATOR_PRIVATE_KEY: ${{ secrets.LLVM_TOKEN_GENERATOR_PRIVATE_KEY }}
-
-      - name: Validate Input
-        uses: ./.github/workflows/validate-release-version
-        with:
-          release-version: ${{ inputs.release-version }}
-
-  release-doxygen:
-    name: Build and Upload Release Doxygen
-    runs-on: ubuntu-24.04
-    environment:
-      name: release
-      deployment: false
-    permissions:
-      contents: write
-    needs:
-      - release-doxygen-validate-input
-    env:
-      upload: ${{ inputs.upload && !contains(inputs.release-version, 'rc') }}
-    steps:
-      - name: Checkout LLVM
-        uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
-        with:
-          persist-credentials: false
-
-      - name: Setup Python env
-        uses: actions/setup-python at ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
-        with:
-          cache: 'pip'
-          cache-dependency-path: './llvm/docs/requirements.txt'
-
-      - name: Install Dependencies
-        run: |
-          sudo apt-get update
-          sudo apt-get install -y \
-              graphviz \
-              python3-github \
-              ninja-build \
-              texlive-font-utils
-          pip3 install --require-hashes --user -r ./llvm/docs/requirements.txt
-
-      - name: Install Doxygen
-        run: |
-          curl -L https://github.com/doxygen/doxygen/releases/download/Release_1_17_0/doxygen-1.17.0.linux.bin.tar.gz -o doxygen.tar.gz
-          echo "75419ef4f446fc1c24ef12514b574e66e898ee6f527c6ae2ad84f91a905823c2  doxygen.tar.gz" | shasum --check -
-          tar -xf doxygen.tar.gz
-          sudo install -m 755 doxygen-1.17.0/bin/doxygen /usr/local/bin/doxygen
-
-      - name: Build Doxygen
-        env:
-          RELEASE_VERSION: ${{ inputs.release-version }}
-        run: |
-          ./llvm/utils/release/build-docs.sh -release "$RELEASE_VERSION" -no-sphinx -no-man-pages
-
-      - id: app-token
-        uses: actions/create-github-app-token at bcd2ba49218906704ab6c1aa796996da409d3eb1  # v3.2.0
-        with:
-          app-id: ${{ secrets.LLVM_TOKEN_GENERATOR_CLIENT_ID }}
-          private-key: ${{ secrets.LLVM_TOKEN_GENERATOR_PRIVATE_KEY }}
-          owner: ${{ github.repository_owner }}
-          permission-members: read
-
-      - name: Upload Doxygen
-        if: env.upload
-        env:
-          GITHUB_TOKEN: ${{ github.token }}
-          USER_TOKEN: ${{ steps.app-token.outputs.token }}
-          RELEASE_VERSION: ${{ inputs.release-version }}
-        run: |
-          ./llvm/utils/release/github-upload-release.py --token "$GITHUB_TOKEN" --release "$RELEASE_VERSION" --user "$GITHUB_ACTOR" --user-token "$USER_TOKEN" upload --files ./*doxygen*.tar.xz
diff --git a/.github/workflows/release-tasks.yml b/.github/workflows/release-tasks.yml
index 932a9ffbe8601..cb84d37fada99 100644
--- a/.github/workflows/release-tasks.yml
+++ b/.github/workflows/release-tasks.yml
@@ -78,22 +78,6 @@ jobs:
       LLVM_TOKEN_GENERATOR_CLIENT_ID: ${{ secrets.LLVM_TOKEN_GENERATOR_CLIENT_ID }}
       LLVM_TOKEN_GENERATOR_PRIVATE_KEY: ${{ secrets.LLVM_TOKEN_GENERATOR_PRIVATE_KEY }}
 
-  release-doxygen:
-    name: Build and Upload Release Doxygen
-    permissions:
-      contents: write
-    needs:
-      - validate-tag
-      - release-create
-    uses: ./.github/workflows/release-doxygen.yml
-    with:
-      release-version: ${{ needs.validate-tag.outputs.release-version }}
-      upload: true
-    # Called workflows don't have access to secrets by default, so we need to explicitly pass secrets that we use.
-    secrets:
-      LLVM_TOKEN_GENERATOR_CLIENT_ID: ${{ secrets.LLVM_TOKEN_GENERATOR_CLIENT_ID }}
-      LLVM_TOKEN_GENERATOR_PRIVATE_KEY: ${{ secrets.LLVM_TOKEN_GENERATOR_PRIVATE_KEY }}
-
   # The pypi trusted publishing does not support called workflows, so we
   # can't use them here.
   release-lit:

>From 77c213640e998e8040a1a4c5487e5a1c8219a7bd Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 5 Aug 2026 14:03:40 -0700
Subject: [PATCH 25/35] Fix tarballanmes and add pull_reqeust block

---
 .github/workflows/release-documentation.yml | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index 52e030c4bb3a0..cfd014f48c564 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -115,7 +115,7 @@ jobs:
             $(test -n "$INPUTS_RELEASE_VERSION" && echo -release "$INPUTS_RELEASE_VERSION" || echo -srcdir llvm)
             ls -ltr
           echo "man-page-tarball-name=$(basename $(find . -iname 'llvm_man_pages-*.tar.xz'))" >> "$GITHUB_OUTPUT"
-          echo "doxygen-tarball-name=$(basename $(find . -iname '*doxygen*.tar.xz'))" >> "$GITHUB_OUTPUT"
+          echo "doxygen-tarball-names=$(find . -maxdepth 1 -iname '*doxygen*.tar.xz' -exec basename {} \; | xargs)" >> "$GITHUB_OUTPUT"
 
 
       - name: Generate sha256 digest for tarballs
@@ -123,10 +123,10 @@ jobs:
         shell: bash
         env:
           MAN_PAGE_TARBALL_NAME: ${{ steps.build.outputs.man-page-tarball-name }}
-          DOXYGEN_TARBALL_NAME: ${{ steps.build.outputs.doxygen-tarball-name }}
+          DOXYGEN_TARBALL_NAMES: ${{ steps.build.outputs.doxygen-tarball-names }}
         run: |
             echo "man-page-digest=$(cat "$MAN_PAGE_TARBALL_NAME" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
-            echo "doxygen-digest=$(cat "$DOXYGEN_TARBALL_NAME" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
+            echo "doxygen-digest=$(cat "$DOXYGEN_TARBALL_NAMES" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
 
       - id: man-page-artifact-upload
         uses: actions/upload-artifact at 043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
@@ -140,7 +140,7 @@ jobs:
         with:
           name: doxygen
           path: |
-            ${{ steps.build.outputs.doxygen-tarball-name }}
+            ${{ steps.build.outputs.doxygen-tarball-names }}
 
       - name: Create Release Notes Artifact
         uses: actions/upload-artifact at 043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
@@ -200,6 +200,8 @@ jobs:
     runs-on: ubuntu-24.04
     needs:
       - release-documentation
+    if: >-
+      github.event_name != 'pull_request'
     permissions:
       contents: write     # For man page uploads
       id-token: write     # For artifact attestations

>From 7e502cddd3aef658ecc211c147cec0aa3a717640 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 5 Aug 2026 14:57:51 -0700
Subject: [PATCH 26/35] Fixes

---
 .github/workflows/release-documentation.yml | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index cfd014f48c564..996306cbc4e46 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -61,6 +61,8 @@ jobs:
   release-documentation:
     name: Build and Upload Release Documentation and Man Pages
     runs-on: ubuntu-24.04
+    env:
+      DOXYGEN_FILE_PATTERN: '*doxygen*.tar.xz'
     if: >-
       github.repository_owner == 'llvm' &&
       github.event.action != 'closed'
@@ -115,7 +117,7 @@ jobs:
             $(test -n "$INPUTS_RELEASE_VERSION" && echo -release "$INPUTS_RELEASE_VERSION" || echo -srcdir llvm)
             ls -ltr
           echo "man-page-tarball-name=$(basename $(find . -iname 'llvm_man_pages-*.tar.xz'))" >> "$GITHUB_OUTPUT"
-          echo "doxygen-tarball-names=$(find . -maxdepth 1 -iname '*doxygen*.tar.xz' -exec basename {} \; | xargs)" >> "$GITHUB_OUTPUT"
+          echo "doxygen-tarball-names=$(find . -maxdepth 1 -iname "$DOXYGEN_FILE_PATTERN" -exec basename {} \; | xargs)" >> "$GITHUB_OUTPUT"
 
 
       - name: Generate sha256 digest for tarballs
@@ -126,7 +128,7 @@ jobs:
           DOXYGEN_TARBALL_NAMES: ${{ steps.build.outputs.doxygen-tarball-names }}
         run: |
             echo "man-page-digest=$(cat "$MAN_PAGE_TARBALL_NAME" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
-            echo "doxygen-digest=$(cat "$DOXYGEN_TARBALL_NAMES" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
+            echo "doxygen-digest=$(cat "$DOXYGEN_FILE_PATTERN" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
 
       - id: man-page-artifact-upload
         uses: actions/upload-artifact at 043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
@@ -140,7 +142,7 @@ jobs:
         with:
           name: doxygen
           path: |
-            ${{ steps.build.outputs.doxygen-tarball-names }}
+            ${{ env.DOXYGEN_FILE_PATTERN }}
 
       - name: Create Release Notes Artifact
         uses: actions/upload-artifact at 043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1

>From f348baeb91b10b5245ab8a75b43a9da0f8ee3a7c Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 5 Aug 2026 16:16:06 -0700
Subject: [PATCH 27/35] Digest fix

---
 .github/workflows/release-documentation.yml | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index 996306cbc4e46..f31257b4fd321 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -119,7 +119,6 @@ jobs:
           echo "man-page-tarball-name=$(basename $(find . -iname 'llvm_man_pages-*.tar.xz'))" >> "$GITHUB_OUTPUT"
           echo "doxygen-tarball-names=$(find . -maxdepth 1 -iname "$DOXYGEN_FILE_PATTERN" -exec basename {} \; | xargs)" >> "$GITHUB_OUTPUT"
 
-
       - name: Generate sha256 digest for tarballs
         id: man-page-digest
         shell: bash
@@ -128,7 +127,7 @@ jobs:
           DOXYGEN_TARBALL_NAMES: ${{ steps.build.outputs.doxygen-tarball-names }}
         run: |
             echo "man-page-digest=$(cat "$MAN_PAGE_TARBALL_NAME" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
-            echo "doxygen-digest=$(cat "$DOXYGEN_FILE_PATTERN" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
+            echo "doxygen-digest=$(cat $(xargs <<< "$DOXYGEN_FILE_PATTERN") | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
 
       - id: man-page-artifact-upload
         uses: actions/upload-artifact at 043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1

>From 32f0d918d5ca7314e7eaf4b1bd92482223127f45 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 5 Aug 2026 17:02:26 -0700
Subject: [PATCH 28/35] Remove unused variable

---
 .github/workflows/release-documentation.yml | 2 --
 1 file changed, 2 deletions(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index f31257b4fd321..069182c2188ec 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -117,14 +117,12 @@ jobs:
             $(test -n "$INPUTS_RELEASE_VERSION" && echo -release "$INPUTS_RELEASE_VERSION" || echo -srcdir llvm)
             ls -ltr
           echo "man-page-tarball-name=$(basename $(find . -iname 'llvm_man_pages-*.tar.xz'))" >> "$GITHUB_OUTPUT"
-          echo "doxygen-tarball-names=$(find . -maxdepth 1 -iname "$DOXYGEN_FILE_PATTERN" -exec basename {} \; | xargs)" >> "$GITHUB_OUTPUT"
 
       - name: Generate sha256 digest for tarballs
         id: man-page-digest
         shell: bash
         env:
           MAN_PAGE_TARBALL_NAME: ${{ steps.build.outputs.man-page-tarball-name }}
-          DOXYGEN_TARBALL_NAMES: ${{ steps.build.outputs.doxygen-tarball-names }}
         run: |
             echo "man-page-digest=$(cat "$MAN_PAGE_TARBALL_NAME" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
             echo "doxygen-digest=$(cat $(xargs <<< "$DOXYGEN_FILE_PATTERN") | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"

>From d9ae67332fff5333cf5b12854f56d83c10889402 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 6 Aug 2026 15:12:02 -0700
Subject: [PATCH 29/35] Remove debugging

---
 .github/workflows/release-documentation.yml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index 069182c2188ec..7c3a283b58347 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -115,7 +115,6 @@ jobs:
         run: |
           ./llvm/utils/release/build-docs.sh \
             $(test -n "$INPUTS_RELEASE_VERSION" && echo -release "$INPUTS_RELEASE_VERSION" || echo -srcdir llvm)
-            ls -ltr
           echo "man-page-tarball-name=$(basename $(find . -iname 'llvm_man_pages-*.tar.xz'))" >> "$GITHUB_OUTPUT"
 
       - name: Generate sha256 digest for tarballs

>From 0fd1b9899dde9068261262bf20494260fcb5d91a Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 6 Aug 2026 20:56:15 -0700
Subject: [PATCH 30/35] Fixes plus debug

---
 .github/workflows/release-documentation.yml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index 7c3a283b58347..201d3e799d293 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -124,7 +124,8 @@ jobs:
           MAN_PAGE_TARBALL_NAME: ${{ steps.build.outputs.man-page-tarball-name }}
         run: |
             echo "man-page-digest=$(cat "$MAN_PAGE_TARBALL_NAME" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
-            echo "doxygen-digest=$(cat $(xargs <<< "$DOXYGEN_FILE_PATTERN") | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
+            echo "doxygen-digest=$(cat $DOXYGEN_FILE_PATTERN" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
+            echo $GITHUB_OUTPUT
 
       - id: man-page-artifact-upload
         uses: actions/upload-artifact at 043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1

>From 01f23736a3d3fac4cea04eb060c5d488860cde2c Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 6 Aug 2026 21:29:03 -0700
Subject: [PATCH 31/35] Fix and debug

---
 .github/workflows/release-documentation.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index 201d3e799d293..def04c85d2565 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -125,7 +125,7 @@ jobs:
         run: |
             echo "man-page-digest=$(cat "$MAN_PAGE_TARBALL_NAME" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
             echo "doxygen-digest=$(cat $DOXYGEN_FILE_PATTERN" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
-            echo $GITHUB_OUTPUT
+            cat $DOXYGEN_FILE_PATTERN" | sha256sum | cut -d ' ' -f 1
 
       - id: man-page-artifact-upload
         uses: actions/upload-artifact at 043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1

>From 099915b779b9d945f3b0918c5dd8a89cc18d8198 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 7 Aug 2026 06:36:54 -0700
Subject: [PATCH 32/35] Fix typo

---
 .github/workflows/release-documentation.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index def04c85d2565..da7ea5d0f2d2f 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -124,7 +124,7 @@ jobs:
           MAN_PAGE_TARBALL_NAME: ${{ steps.build.outputs.man-page-tarball-name }}
         run: |
             echo "man-page-digest=$(cat "$MAN_PAGE_TARBALL_NAME" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
-            echo "doxygen-digest=$(cat $DOXYGEN_FILE_PATTERN" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
+            echo "doxygen-digest=$(cat "$DOXYGEN_FILE_PATTERN" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
             cat $DOXYGEN_FILE_PATTERN" | sha256sum | cut -d ' ' -f 1
 
       - id: man-page-artifact-upload

>From 807c9e89c03d1b022028876cd61fb6dc68abb38b Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 7 Aug 2026 07:30:09 -0700
Subject: [PATCH 33/35] Fix

---
 .github/workflows/release-documentation.yml | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index da7ea5d0f2d2f..7c3a283b58347 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -124,8 +124,7 @@ jobs:
           MAN_PAGE_TARBALL_NAME: ${{ steps.build.outputs.man-page-tarball-name }}
         run: |
             echo "man-page-digest=$(cat "$MAN_PAGE_TARBALL_NAME" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
-            echo "doxygen-digest=$(cat "$DOXYGEN_FILE_PATTERN" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
-            cat $DOXYGEN_FILE_PATTERN" | sha256sum | cut -d ' ' -f 1
+            echo "doxygen-digest=$(cat $(xargs <<< "$DOXYGEN_FILE_PATTERN") | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
 
       - id: man-page-artifact-upload
         uses: actions/upload-artifact at 043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1

>From e61498b960020dd244156f22a73fc322ebf553e0 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 7 Aug 2026 07:30:46 -0700
Subject: [PATCH 34/35] Fix and debug

---
 .github/workflows/release-documentation.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index 7c3a283b58347..030bce6bd35d7 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -123,6 +123,7 @@ jobs:
         env:
           MAN_PAGE_TARBALL_NAME: ${{ steps.build.outputs.man-page-tarball-name }}
         run: |
+            set -ex
             echo "man-page-digest=$(cat "$MAN_PAGE_TARBALL_NAME" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
             echo "doxygen-digest=$(cat $(xargs <<< "$DOXYGEN_FILE_PATTERN") | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
 

>From ad5a225c6e13b73c0db09feee631aa632baed680 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 7 Aug 2026 11:01:03 -0700
Subject: [PATCH 35/35] remove debugging

---
 .github/workflows/release-documentation.yml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml
index 030bce6bd35d7..7c3a283b58347 100644
--- a/.github/workflows/release-documentation.yml
+++ b/.github/workflows/release-documentation.yml
@@ -123,7 +123,6 @@ jobs:
         env:
           MAN_PAGE_TARBALL_NAME: ${{ steps.build.outputs.man-page-tarball-name }}
         run: |
-            set -ex
             echo "man-page-digest=$(cat "$MAN_PAGE_TARBALL_NAME" | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
             echo "doxygen-digest=$(cat $(xargs <<< "$DOXYGEN_FILE_PATTERN") | sha256sum | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT"
 



More information about the llvm-commits mailing list