96 lines · yaml
1name: Release Documentation2 3permissions:4 contents: read5 6on:7 workflow_dispatch:8 inputs:9 release-version:10 description: 'Release Version'11 required: true12 type: string13 upload:14 description: 'Upload documentation'15 required: false16 type: boolean17 18 workflow_call:19 inputs:20 release-version:21 description: 'Release Version'22 required: true23 type: string24 upload:25 description: 'Upload documentation'26 required: false27 type: boolean28 secrets:29 WWW_RELEASES_TOKEN:30 description: "Secret used to create a PR with the documentation changes."31 required: false32 33jobs:34 release-documentation:35 name: Build and Upload Release Documentation36 runs-on: ubuntu-24.0437 env:38 upload: ${{ inputs.upload && !contains(inputs.release-version, 'rc') }}39 steps:40 - name: Checkout LLVM41 uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.042 43 - name: Setup Python env44 uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.045 with:46 cache: 'pip'47 cache-dependency-path: './llvm/docs/requirements.txt'48 49 - name: Install Dependencies50 run: |51 sudo apt-get update52 sudo apt-get install -y \53 graphviz \54 python3-github \55 ninja-build \56 texlive-font-utils57 pip3 install --user -r ./llvm/docs/requirements.txt58 59 - name: Build Documentation60 env:61 GITHUB_TOKEN: ${{ github.token }}62 run: |63 ./llvm/utils/release/build-docs.sh -release "${{ inputs.release-version }}" -no-doxygen64 65 - name: Create Release Notes Artifact66 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # 5.0.067 with:68 name: release-notes69 path: docs-build/html-export/70 71 - name: Clone www-releases72 if: env.upload73 uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.074 with:75 repository: ${{ github.repository_owner }}/www-releases76 ref: main77 fetch-depth: 078 path: www-releases79 persist-credentials: false80 81 - name: Upload Release Notes82 if: env.upload83 env:84 GH_TOKEN: ${{ secrets.WWW_RELEASES_TOKEN }}85 run: |86 mkdir -p www-releases/${{ inputs.release-version }}87 mv ./docs-build/html-export/* www-releases/${{ inputs.release-version }}88 cd www-releases89 git checkout -b ${{ inputs.release-version }}90 git add ${{ inputs.release-version }}91 git config user.email "llvmbot@llvm.org"92 git config user.name "llvmbot"93 git commit -a -m "Add ${{ inputs.release-version }} documentation"94 git push --force "https://$GH_TOKEN@github.com/llvmbot/www-releases.git" HEAD:refs/heads/${{ inputs.release-version }}95 gh pr create -f -B main -H ${{ inputs.release-version }} -R llvmbot/www-releases96