summaryrefslogtreecommitdiff
path: root/.github/workflows/release-tasks.yml
blob: 6627aee6082b3c1560e8c7242c693397f014bcc0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
name: Release Task

on:
  push:
    tags:
      # The regex support here is limited, so just match everything that starts with llvmorg- and filter later.
      - 'llvmorg-*'

jobs:
  release-tasks:
    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 "::set-output name=release-version::$release_version"

    - name: Install Dependencies
      run: |
        sudo apt-get update \
        sudo apt-get install -y \
            doxygen \
            graphviz \
            python3-github \
            python3-recommonmark \
            python3-sphinx \
            ninja-build \
            texlive-font-utils
        pip3 install --user sphinx-markdown-tables

    - name: Checkout LLVM
      uses: actions/checkout@v3

    - 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 -srcdir llvm
        ./llvm/utils/release/github-upload-release.py --token ${{ github.token }} --release ${{ steps.validate-tag.outputs.release-version }} upload --files *doxygen*.tar.xz

    - name: Clone www-releases
      if: ${{ !contains(steps.validate-tag.outputs.release-version, 'rc') }}
      uses: actions/checkout@v3
      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