1name: Release Task
2
3on:
4  push:
5    tags:
6      # The regex support here is limited, so just match everything that starts with llvmorg- and filter later.
7      - 'llvmorg-*'
8
9jobs:
10  release-tasks:
11    runs-on: ubuntu-latest
12    if: github.repository == 'llvm/llvm-project'
13    steps:
14
15    - name: Validate Tag
16      id: validate-tag
17      run: |
18        test "${{ github.actor }}" = "tstellar" || test "${{ github.actor }}" = "tru"
19        echo "${{ github.ref_name }}" | grep -e '^llvmorg-[0-9]\+\.[0-9]\+\.[0-9]\+\(-rc[0-9]\+\)\?$'
20        release_version=`echo "${{ github.ref_name }}" | sed 's/llvmorg-//g'`
21        echo "::set-output name=release-version::$release_version"
22
23    - name: Install Dependencies
24      run: |
25        sudo apt-get install -y \
26            doxygen \
27            graphviz \
28            python3-github \
29            python3-recommonmark \
30            python3-sphinx \
31            ninja-build \
32            texlive-font-utils
33        pip3 install --user sphinx-markdown-tables
34
35    - name: Checkout LLVM
36      uses: actions/checkout@v3
37
38    - name: Create Release
39      run: |
40         ./llvm/utils/release/./github-upload-release.py --token ${{ github.token }} --release ${{ steps.validate-tag.outputs.release-version }} create
41
42    - name: Build Documentation
43      run: |
44        ./llvm/utils/release/build-docs.sh -srcdir llvm
45        ./llvm/utils/release/github-upload-release.py --token ${{ github.token }} --release ${{ steps.validate-tag.outputs.release-version }} upload --files *doxygen*.tar.xz
46
47    - name: Clone www-releases
48      if: ${{ !contains(steps.validate-tag.outputs.release-version, 'rc') }}
49      uses: actions/checkout@v3
50      with:
51        repository: ${{ github.repository_owner }}/www-releases
52        ref: main
53        fetch-depth: 0
54        path: www-releases
55
56    - name: Upload Release Notes
57      if: ${{ !contains(steps.validate-tag.outputs.release-version, 'rc') }}
58      run: |
59        mkdir -p ../www-releases/${{ steps.validate-tag.outputs.release-version }}
60        mv ./docs-build/html-export/* ../www-releases/${{ steps.validate-tag.outputs.release-version }}
61        cd ../www-releases
62        git add ${{ steps.validate-tag.outputs.release-version }}
63        git config user.email "[email protected]"
64        git config user.name "llvmbot"
65        git commit -a -m "Add ${{ steps.validate-tag.outputs.release-version }} documentation"
66        git push https://${{ secrets.WWW_RELEASES_TOKEN }}@github.com/${{ github.repository_owner }}/www-releases main:main
67