mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-16 21:56:34 +00:00

This updates the release-binaries workflow so that the different build stages are split across multiple jobs. This saves money by reducing the time spent on the larger github runners and also makes it easier to debug, because now it's possible to build a smaller release package (with clang and lld) using only the free GitHub runners. The workflow no longer uses the test-release.sh script but instead uses the Release.cmake cache. This gives the workflow more flexibility and ensures that the binary package will always be created even if the tests fail. This idea to split the stages comes from the "LLVM Precommit CI through Github Actions" RFC: https://discourse.llvm.org/t/rfc-llvm-precommit-ci-through-github-actions/76456
35 lines
883 B
Bash
35 lines
883 B
Bash
# Usage: set-release-binary-outputs.sh <github_user> <tag> <upload>
|
|
|
|
set -e
|
|
|
|
if [ -z "$GITHUB_OUTPUT" ]; then
|
|
export GITHUB_OUTPUT=`mktemp`
|
|
echo "Warning: Environment variable GITHUB_OUTPUT is not set."
|
|
echo "Writing output variables to $GITHUB_OUTPUT"
|
|
fi
|
|
|
|
tag=$1
|
|
upload=$2
|
|
|
|
if echo $tag | grep -e '^[0-9a-f]\+$'; then
|
|
# This is a plain commit.
|
|
# TODO: Don't hardcode this.
|
|
release_version="18"
|
|
upload='false'
|
|
ref="$tag"
|
|
|
|
else
|
|
|
|
pattern='^llvmorg-[0-9]\+\.[0-9]\+\.[0-9]\+\(-rc[0-9]\+\)\?$'
|
|
echo "$tag" | grep -e $pattern
|
|
if [ $? != 0 ]; then
|
|
echo "ERROR: Tag '$tag' doesn't match pattern: $pattern"
|
|
exit 1
|
|
fi
|
|
release_version=`echo "$tag" | sed 's/llvmorg-//g'`
|
|
release=`echo "$release_version" | sed 's/-.*//g'`
|
|
fi
|
|
echo "release-version=$release_version" >> $GITHUB_OUTPUT
|
|
echo "upload=$upload" >> $GITHUB_OUTPUT
|
|
echo "ref=$tag" >> $GITHUB_OUTPUT
|