From 9f1ef7ea33856a8f1cb689ceca869d5b2f73376e Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Tue, 28 Jul 2026 22:48:55 -0700 Subject: [PATCH 01/36] 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@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 From f6f2d598d0bd68d62245d19c294fd1d2bf680095 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Wed, 29 Jul 2026 11:18:49 -0700 Subject: [PATCH 02/36] 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@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@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 + with: + persist-credentials: false + - name: Setup Python env uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0 with: From 34926480dfa181e822a48808d993c4752ebcb89b Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Wed, 29 Jul 2026 14:07:40 -0700 Subject: [PATCH 03/36] 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@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: From 5c78755427723fd90c05234cf51239fbd3d59f42 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Wed, 29 Jul 2026 14:20:58 -0700 Subject: [PATCH 04/36] 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 Date: Wed, 29 Jul 2026 14:27:50 -0700 Subject: [PATCH 05/36] 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 Date: Wed, 29 Jul 2026 14:42:26 -0700 Subject: [PATCH 06/36] 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 Date: Wed, 29 Jul 2026 16:00:55 -0700 Subject: [PATCH 07/36] 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 Date: Wed, 29 Jul 2026 16:01:00 -0700 Subject: [PATCH 08/36] 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 Date: Wed, 29 Jul 2026 16:01:02 -0700 Subject: [PATCH 09/36] 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 Date: Wed, 29 Jul 2026 16:25:07 -0700 Subject: [PATCH 10/36] 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 Date: Wed, 29 Jul 2026 17:12:40 -0700 Subject: [PATCH 11/36] 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@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@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - with: - persist-credentials: false - - name: Setup Python env uses: actions/setup-python@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 Date: Thu, 30 Jul 2026 09:25:50 -0700 Subject: [PATCH 12/36] 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@llvm.org" From 0c24f5666bc629ff5eed13d775cf8b1f8106d7af Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 30 Jul 2026 09:27:46 -0700 Subject: [PATCH 13/36] 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 Date: Thu, 30 Jul 2026 10:00:32 -0700 Subject: [PATCH 14/36] 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@llvm.org" From f9d217eb39a7b533bd1b6dbf6f5f2345f19c4561 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 30 Jul 2026 10:25:49 -0700 Subject: [PATCH 15/36] 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@llvm.org" From 3bf84290434d851c44977923e64b38c3b0190c21 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 30 Jul 2026 10:27:05 -0700 Subject: [PATCH 16/36] 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 Date: Thu, 30 Jul 2026 16:56:28 -0700 Subject: [PATCH 17/36] 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 Date: Fri, 31 Jul 2026 16:59:35 -0700 Subject: [PATCH 18/36] 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@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@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@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: doxygen + path: | + ${{ steps.build.outputs.doxygen-tarball-name }} + - name: Create Release Notes Artifact uses: actions/upload-artifact@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 Date: Fri, 31 Jul 2026 17:00:41 -0700 Subject: [PATCH 19/36] 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 Date: Fri, 31 Jul 2026 17:08:49 -0700 Subject: [PATCH 20/36] 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 Date: Fri, 31 Jul 2026 20:44:31 -0700 Subject: [PATCH 21/36] 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 Date: Fri, 31 Jul 2026 21:07:04 -0700 Subject: [PATCH 22/36] 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 Date: Fri, 31 Jul 2026 21:36:31 -0700 Subject: [PATCH 23/36] 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 Date: Wed, 5 Aug 2026 13:40:49 -0700 Subject: [PATCH 24/36] 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@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@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - with: - persist-credentials: false - - - name: Setup Python env - uses: actions/setup-python@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@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 Date: Wed, 5 Aug 2026 14:03:40 -0700 Subject: [PATCH 25/36] 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@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@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 Date: Wed, 5 Aug 2026 14:57:51 -0700 Subject: [PATCH 26/36] 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@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@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 From f348baeb91b10b5245ab8a75b43a9da0f8ee3a7c Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Wed, 5 Aug 2026 16:16:06 -0700 Subject: [PATCH 27/36] 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@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 From 32f0d918d5ca7314e7eaf4b1bd92482223127f45 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Wed, 5 Aug 2026 17:02:26 -0700 Subject: [PATCH 28/36] 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 Date: Thu, 6 Aug 2026 15:12:02 -0700 Subject: [PATCH 29/36] 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 Date: Thu, 6 Aug 2026 20:56:15 -0700 Subject: [PATCH 30/36] 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@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 From 01f23736a3d3fac4cea04eb060c5d488860cde2c Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 6 Aug 2026 21:29:03 -0700 Subject: [PATCH 31/36] 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@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 From 099915b779b9d945f3b0918c5dd8a89cc18d8198 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Fri, 7 Aug 2026 06:36:54 -0700 Subject: [PATCH 32/36] 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 Date: Fri, 7 Aug 2026 07:30:09 -0700 Subject: [PATCH 33/36] 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@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 From e61498b960020dd244156f22a73fc322ebf553e0 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Fri, 7 Aug 2026 07:30:46 -0700 Subject: [PATCH 34/36] 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 Date: Fri, 7 Aug 2026 11:01:03 -0700 Subject: [PATCH 35/36] 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" From c0dba494617c3908154cf67d813dd57e864bcad9 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Wed, 19 Aug 2026 21:31:41 -0700 Subject: [PATCH 36/36] Add back environment --- .github/workflows/release-documentation.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/release-documentation.yml b/.github/workflows/release-documentation.yml index 7c3a283b58347..6ad2397ddc87f 100644 --- a/.github/workflows/release-documentation.yml +++ b/.github/workflows/release-documentation.yml @@ -196,6 +196,9 @@ jobs: upload-documentation: name: "Upload Documentation" runs-on: ubuntu-24.04 + environment: + deployment: false + name: release needs: - release-documentation if: >-