util/abuild: Add --name option to set name of abuild run
Previously, the testclass variable was only updated with the chromeos or Kconfig option values, and the output directory and xml file names were updated independently. With the --name option, all of these can be set simultaneously. This also prevents jenkins from seeing clang and gcc tests as the same because the testclass variable wasn't updated. If --name is not set, all behavior is as it was previously. Signed-off-by: Martin Roth <gaumless@gmail.com> Change-Id: I8f52779b92d213386a3eb371d1f30ee32ed48b85 Reviewed-on: https://review.coreboot.org/c/coreboot/+/69859 Reviewed-by: Elyes Haouas <ehaouas@noos.fr> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
This commit is contained in:
parent
36dcabac05
commit
7df45bbc0c
|
@ -11,15 +11,21 @@
|
||||||
|
|
||||||
#set -x # Turn echo on....
|
#set -x # Turn echo on....
|
||||||
|
|
||||||
ABUILD_DATE="Mar 28, 2017"
|
ABUILD_DATE="Nov 19, 2022"
|
||||||
ABUILD_VERSION="0.10.03"
|
ABUILD_VERSION="0.11.00"
|
||||||
|
|
||||||
TOP=$PWD
|
TOP=$PWD
|
||||||
|
|
||||||
# Where shall we place all the build trees?
|
# Where shall we place all the build trees?
|
||||||
TARGET=${COREBOOT_BUILD_DIR:-coreboot-builds}
|
TARGET_DEFAULT=coreboot-builds
|
||||||
XMLFILE=$TOP/abuild.xml
|
TARGET=${COREBOOT_BUILD_DIR:-${TARGET_DEFAULT}}
|
||||||
REAL_XMLFILE=$XMLFILE
|
XML_DEFAULT="$TOP/abuild.xml"
|
||||||
|
XMLFILE="${XML_DEFAULT}"
|
||||||
|
REAL_XMLFILE="${XML_DEFAULT}"
|
||||||
|
|
||||||
|
# Name associated with a run of abuild
|
||||||
|
TESTRUN_DEFAULT=default
|
||||||
|
TESTRUN="${TESTRUN_DEFAULT}"
|
||||||
|
|
||||||
export KCONFIG_OVERWRITECONFIG=1
|
export KCONFIG_OVERWRITECONFIG=1
|
||||||
|
|
||||||
|
@ -367,7 +373,7 @@ function compile_target
|
||||||
|
|
||||||
etime=$(perl -e 'print time();' 2>/dev/null || date +%s)
|
etime=$(perl -e 'print time();' 2>/dev/null || date +%s)
|
||||||
duration=$(( etime - stime ))
|
duration=$(( etime - stime ))
|
||||||
junit " <testcase classname='board${testclass/#/.}' name='$BUILD_NAME' time='$duration' >"
|
junit " <testcase classname='${TESTRUN}${testclass/#/.}' name='$BUILD_NAME' time='$duration' >"
|
||||||
|
|
||||||
if [ $MAKE_FAILED -eq 0 ]; then
|
if [ $MAKE_FAILED -eq 0 ]; then
|
||||||
junit "<system-out>"
|
junit "<system-out>"
|
||||||
|
@ -465,7 +471,7 @@ function build_config
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $BUILDENV_CREATED -ne 0 ] || [ $MAINBOARD_OK -ne 0 ] || [ $VENDOR_OK -ne 0 ] || [ $FORCE_ENABLED_CROS -eq 1 ]; then
|
if [ $BUILDENV_CREATED -ne 0 ] || [ $MAINBOARD_OK -ne 0 ] || [ $VENDOR_OK -ne 0 ] || [ $FORCE_ENABLED_CROS -eq 1 ]; then
|
||||||
junit " <testcase classname='board${testclass/#/.}' name='$BUILD_NAME' >"
|
junit " <testcase classname='${TESTRUN}${testclass/#/.}' name='$BUILD_NAME' >"
|
||||||
|
|
||||||
junit "<failure type='BuildFailed'>"
|
junit "<failure type='BuildFailed'>"
|
||||||
junitfile "$build_dir/config.log"
|
junitfile "$build_dir/config.log"
|
||||||
|
@ -581,7 +587,7 @@ Usage: $0 [options]
|
||||||
$0 [-V|--version]
|
$0 [-V|--version]
|
||||||
$0 [-h|--help]
|
$0 [-h|--help]
|
||||||
|
|
||||||
Options:\n"
|
Options:\n
|
||||||
[-a|--all] Build previously succeeded ports as well
|
[-a|--all] Build previously succeeded ports as well
|
||||||
[-A|--any-toolchain] Use any toolchain
|
[-A|--any-toolchain] Use any toolchain
|
||||||
[-b|--board-variant <name>] Build specific board variant under the
|
[-b|--board-variant <name>] Build specific board variant under the
|
||||||
|
@ -596,6 +602,8 @@ Options:\n"
|
||||||
[-K|--kconfig <name>] Prepend file to generated Kconfig
|
[-K|--kconfig <name>] Prepend file to generated Kconfig
|
||||||
[-l|--loglevel <num>] Set loglevel
|
[-l|--loglevel <num>] Set loglevel
|
||||||
[-L|--clang] Use clang on supported arch
|
[-L|--clang] Use clang on supported arch
|
||||||
|
[-n|--name] Set build name - also sets xmlfile if not
|
||||||
|
already set
|
||||||
[-o|--outdir <path>] Store build results in path
|
[-o|--outdir <path>] Store build results in path
|
||||||
(defaults to $TARGET)
|
(defaults to $TARGET)
|
||||||
[-p|--payloads <dir>] Use payloads in <dir> to build images
|
[-p|--payloads <dir>] Use payloads in <dir> to build images
|
||||||
|
@ -663,12 +671,12 @@ getoptbrand="$(getopt -V)"
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
if [ "${getoptbrand:0:6}" == "getopt" ]; then
|
if [ "${getoptbrand:0:6}" == "getopt" ]; then
|
||||||
# Detected GNU getopt that supports long options.
|
# Detected GNU getopt that supports long options.
|
||||||
args=$(getopt -l version,verbose,quiet,help,all,target:,board-variant:,payloads:,cpus:,silent,junit,config,loglevel:,remove,prefix:,update,scan-build,ccache,blobs,clang,any-toolchain,clean,clean-somewhat,outdir:,chromeos,xmlfile:,kconfig:,dir:,root:,recursive,checksum:,timeless,exitcode,asserts -o Vvqhat:b:p:c:sJCl:rP:uyBLAzZo:xX:K:d:R:Ie -- "$@") || exit 1
|
args=$(getopt -l version,verbose,quiet,help,all,target:,board-variant:,payloads:,cpus:,silent,junit,config,loglevel:,remove,prefix:,update,scan-build,ccache,blobs,clang,any-toolchain,clean,clean-somewhat,outdir:,chromeos,xmlfile:,kconfig:,dir:,root:,recursive,checksum:,timeless,exitcode,asserts,name: -o Vvqhat:b:p:c:sJCl:rP:uyBLAzZo:xX:K:d:R:Ien: -- "$@") || exit 1
|
||||||
eval set -- $args
|
eval set -- $args
|
||||||
retval=$?
|
retval=$?
|
||||||
else
|
else
|
||||||
# Detected non-GNU getopt
|
# Detected non-GNU getopt
|
||||||
args=$(getopt Vvqhat:b:p:c:sJCl:rP:uyBLAZzo:xX:K:d:R:Ie "$@")
|
args=$(getopt Vvqhat:b:p:c:sJCl:rP:uyBLAZzo:xX:K:d:R:Ien: "$@")
|
||||||
set -- $args
|
set -- $args
|
||||||
retval=$?
|
retval=$?
|
||||||
fi
|
fi
|
||||||
|
@ -762,13 +770,19 @@ while true ; do
|
||||||
-o|--outdir) shift
|
-o|--outdir) shift
|
||||||
TARGET=$1; shift
|
TARGET=$1; shift
|
||||||
;;
|
;;
|
||||||
|
-n|--name) shift
|
||||||
|
TESTRUN=$1
|
||||||
|
shift;;
|
||||||
-x|--chromeos) shift
|
-x|--chromeos) shift
|
||||||
chromeos=true
|
chromeos=true
|
||||||
testclass=chromeos
|
testclass=chromeos
|
||||||
customizing="${customizing}, chromeos"
|
customizing="${customizing}, chromeos"
|
||||||
configoptions="${configoptions}CONFIG_CHROMEOS=y\nCONFIG_VBOOT_MEASURED_BOOT=y\n"
|
configoptions="${configoptions}CONFIG_CHROMEOS=y\nCONFIG_VBOOT_MEASURED_BOOT=y\n"
|
||||||
;;
|
;;
|
||||||
-X|--xmlfile) shift; XMLFILE=$1; REAL_XMLFILE=$1; shift;;
|
-X|--xmlfile) shift
|
||||||
|
XMLFILE=$1
|
||||||
|
REAL_XMLFILE=$1
|
||||||
|
shift;;
|
||||||
-I|--recursive) shift; recursive=true;;
|
-I|--recursive) shift; recursive=true;;
|
||||||
-K|--kconfig) shift
|
-K|--kconfig) shift
|
||||||
testclass="$(basename "$1" | tr '.' '_' )"
|
testclass="$(basename "$1" | tr '.' '_' )"
|
||||||
|
@ -782,6 +796,18 @@ while true ; do
|
||||||
*) break;;
|
*) break;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [[ "${TESTRUN}" != "${TESTRUN_DEFAULT}" ]]; then
|
||||||
|
unset testclass
|
||||||
|
if [[ "${XML_UPDATED}" != "${XML_DEFAULT}" ]]; then
|
||||||
|
XMLFILE="abuild-${TESTRUN}.xml"
|
||||||
|
REAL_XMLFILE="${XMLFILE}"
|
||||||
|
fi
|
||||||
|
if [[ "${TARGET}" == "${TARGET_DEFAULT}" ]]; then
|
||||||
|
TARGET="${TESTRUN}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "$1" ]; then
|
if [ -n "$1" ]; then
|
||||||
printf "Invalid option '%s'\n\n" "$1"; myhelp; exit 1;
|
printf "Invalid option '%s'\n\n" "$1"; myhelp; exit 1;
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue