diff --git a/.github/workflows/release-tasks.yml b/.github/workflows/release-tasks.yml new file mode 100644 --- /dev/null +++ b/.github/workflows/release-tasks.yml @@ -0,0 +1,65 @@ +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 + steps: + + - name: Validate Tag + id: validate-tag + run: | + test "${{ github.actor }}" = "tstellar" + 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 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: | + bash 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