| name: Release Task |
| |
| permissions: |
| contents: read |
| |
| on: |
| push: |
| tags: |
| # The regex support here is limited, so just match everything that starts with llvmorg- and filter later. |
| - 'llvmorg-*' |
| |
| jobs: |
| release-tasks: |
| permissions: |
| contents: write # To upload assets to release. |
| runs-on: ubuntu-latest |
| if: github.repository == 'llvm/llvm-project' |
| steps: |
| - name: Validate Tag |
| id: validate-tag |
| run: | |
| test "${{ github.actor }}" = "tstellar" || test "${{ github.actor }}" = "tru" |
| echo "${{ github.ref_name }}" | grep -e '^llvmorg-[0-9]\+\.[0-9]\+\.[0-9]\+\(-rc[0-9]\+\)\?$' |
| release_version=$(echo "${{ github.ref_name }}" | sed 's/llvmorg-//g') |
| echo "release-version=$release_version" >> "$GITHUB_OUTPUT" |
| |
| - name: Checkout LLVM |
| uses: actions/checkout@v4 |
| |
| - name: Install Dependencies |
| run: | |
| sudo apt-get update |
| sudo apt-get install -y \ |
| doxygen \ |
| graphviz \ |
| python3-github \ |
| ninja-build \ |
| texlive-font-utils |
| pip3 install --user -r ./llvm/docs/requirements.txt |
| |
| - name: Create Release |
| run: | |
| ./llvm/utils/release/./github-upload-release.py --token ${{ github.token }} --release ${{ steps.validate-tag.outputs.release-version }} create |
| |
| - name: Build Documentation |
| run: | |
| ./llvm/utils/release/build-docs.sh -release ${{ steps.validate-tag.outputs.release-version }} |
| ./llvm/utils/release/github-upload-release.py --token ${{ github.token }} --release ${{ steps.validate-tag.outputs.release-version }} upload --files ./*doxygen*.tar.xz |
| |
| - name: Create Release Notes Artifact |
| uses: actions/upload-artifact@v3 |
| with: |
| name: release-notes |
| path: docs-build/html-export/ |
| |
| - name: Clone www-releases |
| if: ${{ !contains(steps.validate-tag.outputs.release-version, 'rc') }} |
| uses: actions/checkout@v4 |
| with: |
| repository: ${{ github.repository_owner }}/www-releases |
| ref: main |
| fetch-depth: 0 |
| path: www-releases |
| |
| - name: Upload Release Notes |
| if: ${{ !contains(steps.validate-tag.outputs.release-version, 'rc') }} |
| run: | |
| mkdir -p ../www-releases/${{ steps.validate-tag.outputs.release-version }} |
| mv ./docs-build/html-export/* ../www-releases/${{ steps.validate-tag.outputs.release-version }} |
| cd ../www-releases |
| git add ${{ steps.validate-tag.outputs.release-version }} |
| git config user.email "llvmbot@llvm.org" |
| git config user.name "llvmbot" |
| git commit -a -m "Add ${{ steps.validate-tag.outputs.release-version }} documentation" |
| git push https://${{ secrets.WWW_RELEASES_TOKEN }}@github.com/${{ github.repository_owner }}/www-releases main:main |
| |
| release-lit: |
| runs-on: ubuntu-latest |
| if: github.repository == 'llvm/llvm-project' |
| steps: |
| - name: Checkout LLVM |
| uses: actions/checkout@v4 |
| |
| - name: Setup Cpp |
| uses: aminya/setup-cpp@v1 |
| with: |
| compiler: llvm-16.0.6 |
| cmake: true |
| ninja: true |
| |
| - name: Install dependencies |
| run: | |
| sudo apt-get update |
| sudo apt-get install -y python3-setuptools python3-psutil |
| |
| - name: Test lit |
| run: | |
| mkdir build && cd build |
| export FILECHECK_OPTS='-dump-input-filter=all -vv -color' |
| cmake ../llvm -DCMAKE_BUILD_TYPE=Release -G Ninja |
| ninja -v -j $(nproc) check-lit |
| |
| - name: Package lit |
| run: | |
| cd llvm/utils/lit |
| # Remove 'dev' suffix from lit version. |
| sed -i 's/ + "dev"//g' lit/__init__.py |
| python3 setup.py sdist |
| |
| - name: Upload lit to test.pypi.org |
| uses: pypa/gh-action-pypi-publish@release/v1 |
| with: |
| password: ${{ secrets.LLVM_LIT_TEST_PYPI_API_TOKEN }} |
| repository-url: https://test.pypi.org/legacy/ |
| packages-dir: llvm/utils/lit/dist/ |
| |
| - name: Upload lit to pypi.org |
| uses: pypa/gh-action-pypi-publish@release/v1 |
| with: |
| password: ${{ secrets.LLVM_LIT_PYPI_API_TOKEN }} |
| packages-dir: llvm/utils/lit/dist/ |