-
Notifications
You must be signed in to change notification settings - Fork 12.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
workflows: Refactor release-tasks.yml #69523
Changes from 7 commits
6a7f298
d5b347a
f5fefe5
7699de2
26fe1a3
6db4954
6a6bfbb
ad3741d
5f88ae1
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
name: Release Documentation | ||
|
||
permissions: | ||
contents: read | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
release-version: | ||
description: 'Release Version' | ||
required: true | ||
type: string | ||
upload: | ||
description: 'Upload documentation' | ||
required: false | ||
type: boolean | ||
|
||
workflow_call: | ||
inputs: | ||
release-version: | ||
description: 'Release Version' | ||
required: true | ||
type: string | ||
upload: | ||
description: 'Upload documentation' | ||
required: false | ||
type: boolean | ||
|
||
jobs: | ||
release-documentation: | ||
name: Build and Upload Release Documentation | ||
runs-on: ubuntu-latest | ||
env: | ||
upload: ${{ inputs.upload && !contains(inputs.release-version, 'rc') }} | ||
steps: | ||
- name: Checkout LLVM | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup Python env | ||
uses: actions/setup-python@v4 | ||
with: | ||
cache: 'pip' | ||
cache-dependency-path: './llvm/docs/requirements.txt' | ||
|
||
- name: Install Dependencies | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install -y \ | ||
graphviz \ | ||
python3-github \ | ||
ninja-build \ | ||
texlive-font-utils | ||
pip3 install --user -r ./llvm/docs/requirements.txt | ||
|
||
- name: Build Documentation | ||
env: | ||
GITHUB_TOKEN: ${{ github.token }} | ||
run: | | ||
./llvm/utils/release/build-docs.sh -release "${{ inputs.release-version }}" -no-doxygen | ||
|
||
- name: Create Release Notes Artifact | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: release-notes | ||
path: docs-build/html-export/ | ||
|
||
- name: Clone www-releases | ||
if: env.upload | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: ${{ github.repository_owner }}/www-releases | ||
ref: main | ||
fetch-depth: 0 | ||
path: www-releases | ||
|
||
- name: Upload Release Notes | ||
if: env.upload | ||
env: | ||
WWW_RELEASES_TOKEN: ${{ secrets.WWW_RELEASES_TOKEN }} | ||
run: | | ||
mkdir -p ../www-releases/${{ inputs.release-version }} | ||
mv ./docs-build/html-export/* ../www-releases/${{ inputs.release-version }} | ||
cd ../www-releases | ||
git add ${{ inputs.release-version }} | ||
git config user.email "[email protected]" | ||
git config user.name "llvmbot" | ||
git commit -a -m "Add ${{ inputs.release-version }} documentation" | ||
git push "https://[email protected]/${{ github.repository_owner }}/www-releases" main:main |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
name: Release Doxygen | ||
|
||
permissions: | ||
contents: read | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
release-version: | ||
description: 'Release Version' | ||
required: true | ||
type: string | ||
upload: | ||
description: 'Upload documentation' | ||
required: false | ||
type: boolean | ||
|
||
workflow_call: | ||
inputs: | ||
release-version: | ||
description: 'Release Version' | ||
required: true | ||
type: string | ||
upload: | ||
description: 'Upload documentation' | ||
required: false | ||
type: boolean | ||
|
||
jobs: | ||
release-doxygen: | ||
name: Build and Upload Release Doxygen | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
env: | ||
upload: ${{ inputs.upload && !contains(inputs.release-version, 'rc') }} | ||
steps: | ||
- name: Checkout LLVM | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup Python env | ||
uses: actions/setup-python@v4 | ||
with: | ||
cache: 'pip' | ||
cache-dependency-path: './llvm/docs/requirements.txt' | ||
|
||
- name: Install Dependencies | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install -y \ | ||
doxygen \ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Isn't doxygen already listed as a requirement in the pip requirements file? It might be worth adding the pip cache with There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. doxygen is not in the requirements file. |
||
graphviz \ | ||
python3-github \ | ||
ninja-build \ | ||
texlive-font-utils | ||
pip3 install --user -r ./llvm/docs/requirements.txt | ||
|
||
- name: Build Doxygen | ||
env: | ||
GITHUB_TOKEN: ${{ github.token }} | ||
run: | | ||
./llvm/utils/release/build-docs.sh -release "${{ inputs.release-version }}" -no-sphinx | ||
|
||
- name: Upload Doxygen | ||
if: env.upload | ||
run: | | ||
./llvm/utils/release/github-upload-release.py --token "$GITHUB_TOKEN" --release "${{ inputs.release-version }}" --user "${{ github.actor }}" upload --files ./*doxygen*.tar.xz |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
name: Release Lit | ||
|
||
permissions: | ||
contents: read | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
release-version: | ||
description: 'Release Version' | ||
required: true | ||
type: string | ||
|
||
workflow_call: | ||
inputs: | ||
release-version: | ||
description: 'Release Version' | ||
required: true | ||
type: string | ||
|
||
jobs: | ||
release-lit: | ||
name: Release Lit | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout LLVM | ||
uses: actions/checkout@v4 | ||
with: | ||
ref: "llvmorg-${{ inputs.release-version }}" | ||
|
||
- name: Install dependencies | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install -y python3-setuptools python3-psutil python3-github | ||
|
||
- name: Check Permissions | ||
env: | ||
GITHUB_TOKEN: ${{ github.token }} | ||
run: | | ||
./llvm/utils/release/./github-upload-release.py --token "$GITHUB_TOKEN" --user ${{ github.actor }} check-permissions | ||
|
||
- name: Setup Cpp | ||
uses: aminya/setup-cpp@v1 | ||
with: | ||
compiler: llvm-16.0.6 | ||
boomanaiden154 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
cmake: true | ||
ninja: true | ||
|
||
- 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/ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. is the legacy part of this URL intentional? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, this is comes from an example in the README file for this action: https://github.com/pypa/gh-action-pypi-publish |
||
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/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's the purpose of this permissions check?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I want to make sure that only the release managers are allowed to run this job manually, because we have a limited budget for using the bigger runners and I don't want to use it up.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, makes sense. Wasn't thinking that anyone with commit access is allowed to run the job rather than just the release managers.