diff options
author | Diana Picus <diana.picus@linaro.org> | 2021-07-27 13:12:11 +0200 |
---|---|---|
committer | Diana Picus <diana.picus@linaro.org> | 2022-07-21 13:52:57 +0200 |
commit | 39dd5096c6710690db3b63d3a190c9dcdcec23a6 (patch) | |
tree | 304294352dc8e410592d1b01f7fca75ae522c3dd | |
parent | e3a5933936ba2be3b140c575850f3702af33a93b (diff) |
tcwg-llvm-release.sh: Fix git-ref
When building a git-ref, we're using the test-release.sh from the
release branch passed in as a parameter. We should instead use the one
from the given git-ref, and in fact we shouldn't pass a release number
at all. This patch fixes the issue by forcing either release + candidate
or git ref to be passed in.
Change-Id: I7df89175164fc49b1e73411f9f5ff6ebd118caa4
-rwxr-xr-x | tcwg-llvm-release.sh | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/tcwg-llvm-release.sh b/tcwg-llvm-release.sh index 2b72b97c..69d166f6 100755 --- a/tcwg-llvm-release.sh +++ b/tcwg-llvm-release.sh @@ -15,7 +15,7 @@ BASEDIR=$(dirname "$(readlink -f "$0")") # Syntax SYN_WORKSPACE="--workspace=/path/to/workspace" SYN_RELEASE="--release=M.m.p" -SYN_CANDIDATE="--candidate=N (or 'final' or 'branch=*')" +SYN_CANDIDATE="--candidate=N (or 'final' or 'git-ref=*')" SYN_BUILDJOBS="--buildjobs=N (def. CPUS)" SYN_TOOLCHAIN="--toolchain=http://url/for/tarball" SYN_TOOLCHAIN_FILE="--toolchain-file=<file-name> (file name to copy the produced toolchain file name)" @@ -25,7 +25,9 @@ SYNTAX="$0 $SYN_WORKSPACE $SYN_RELEASE $SYN_CANDIDATE $SYN_TOOLCHAIN $SYN_TOOLCH # Environment Variables and default values WORKSPACE=$(pwd) +GITREF="" RELEASE="" +RELCALL="" CANDIDATE="" RCCALL="" RCTAG="" @@ -43,10 +45,15 @@ while [ "$#" -gt 0 ]; do case "$ARG" in --release) RELEASE="$VAL" - if ! echo "$RELEASE" | grep -E -q "^[0-9]+\\.[0-9]\\.[0-9]"; then + if test -z "$RELEASE"; then + # The release can be empty if we're building a git ref. + echo "No release specified" + elif ! echo "$RELEASE" | grep -E -q "^[0-9]+\\.[0-9]\\.[0-9]"; then echo "ERROR: $1" echo "Syntax: $SYN_RELEASE" exit 1 + else + RELCALL="-release $RELEASE" fi shift ;; --candidate) @@ -120,8 +127,13 @@ while [ "$#" -gt 0 ]; do done # Validate options -if [ "$RELEASE" = "" ] || [ "$CANDIDATE" = "" ]; then - echo "ERROR: Missing release or candidate" +if [ "$CANDIDATE" = "" ]; then + echo "ERROR: Missing candidate" + echo "$SYNTAX" + exit 1 +fi +if [ "$RELEASE" = "" ] && [ "$GITREF" = "" ]; then + echo "ERROR: Missing release or git ref" echo "$SYNTAX" exit 1 fi @@ -176,7 +188,11 @@ LOGEXT="txt" # Release script RELEASE_SCRIPT="test-release.sh" -RELEASE_TAG="llvmorg-${RELEASE}${RCTAG}" +if test -z "$RELEASE"; then + RELEASE_TAG="$GITREF" +else + RELEASE_TAG="llvmorg-${RELEASE}${RCTAG}" +fi SCRIPT_URL=https://raw.githubusercontent.com/llvm/llvm-project/$RELEASE_TAG/llvm/utils/release/$RELEASE_SCRIPT ( cd "$WORKSPACE" @@ -189,11 +205,15 @@ SCRIPT_URL=https://raw.githubusercontent.com/llvm/llvm-project/$RELEASE_TAG/llvm # - we want to push the binary public on success or failre result=0 ( - cd "$WORKSPACE" && LC_ALL=C ./$RELEASE_SCRIPT -release $RELEASE $RCCALL -triple $TARGET -j$BUILDJOBS $OPENMP $MLIR $FLANG $USENINJA -configure-flags "$EXTRA_CONFIG_ARGS" |& tee "$LOGBASE-release.$LOGEXT" + cd "$WORKSPACE" && LC_ALL=C ./$RELEASE_SCRIPT $RELCALL $RCCALL -triple $TARGET -j$BUILDJOBS $OPENMP $MLIR $FLANG $USENINJA -configure-flags "$EXTRA_CONFIG_ARGS" |& tee "$LOGBASE-release.$LOGEXT" ) & wait $! || result=$? -PKGTAG="$RELEASE$RCTAG" +if test -z "$RELEASE"; then + PKGTAG="$GITREF" +else + PKGTAG="$RELEASE$RCTAG" +fi PKGNAME="$(push_binary_name "$PKGTAG" "$TARGET")" PUSHTYPE="releases" PUSHDIR="$(push_binary_dir "$PUSHTYPE")" |