Skip to content

Commit 813457f

Browse files
authored
Merge pull request #2618 from cms-sw/pr-estats-usage
enable usage of external resources utilization for PR tests
2 parents 7a2e745 + 62642ca commit 813457f

File tree

4 files changed

+21
-8
lines changed

4 files changed

+21
-8
lines changed

cmsrep.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ umask 0002
88
export CMS_PYTHON_TO_USE="python"
99
if which python3 >/dev/null 2>&1 ; then export CMS_PYTHON_TO_USE="python3" ; fi
1010

11-
#called with $BUILD_OPTS $MULTIARCH_OPTS $ARCH
11+
#called with $BUILD_OPTS $MULTIARCH_OPTS $ARCH $PKGTOOLS_VER(e.g. 33, 34 etc.)
1212
function cmsbuild_args()
1313
{
1414
arg=""
@@ -17,6 +17,7 @@ function cmsbuild_args()
1717
for x in $(echo "$1" | tr ',' ' ') ; do
1818
case $x in
1919
upload_store ) ;;
20+
estats ) ;;
2021
without:* ) arg="${arg} --build-without=$(echo $x | sed 's|^without:||;s|:|,|g')" ;;
2122
system:* ) arg="${arg} --use-system-tools=$(echo $x | sed 's|^system:||;s|:|,|g')" ;;
2223
microarchs:* ) arg="${arg} --vectorization=$(echo $x | sed 's|^microarchs:||;s|:|,|g')" ;;

get-external-avg-stats.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/usr/bin/env python3
2+
import sys, json
3+
from es_utils import get_avg_externals_build_stats as get_stats
4+
5+
print(json.dumps(get_stats(arch=sys.argv[1])))

pr_testing/_helper_functions.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,8 @@ function prepare_upload_results (){
104104
mkdir -p ${LOCAL_LOGDIR}/${xdir}
105105
mv ${dir}/log ${LOCAL_LOGDIR}/${xdir}/
106106
[ -e ${dir}/src-logs.tgz ] && mv ${dir}/src-logs.tgz ${LOCAL_LOGDIR}/${xdir}/
107-
json=$(basename $(dirname $dir)).json
108-
[ -e "${dir}/${json}" ] && mv ${dir}/${json} ${LOCAL_LOGDIR}/${xdir}/
107+
pkg=$(basename $(dirname $dir))
108+
[ -e "${dir}/${pkg}.json" ] && mv ${dir}/${pkg}*.json ${LOCAL_LOGDIR}/${xdir}/
109109
[ -e "${dir}/opts.json" ] && mv ${dir}/opts.json ${LOCAL_LOGDIR}/${xdir}/
110110
done
111111
popd

pr_testing/test_multiple_prs.sh

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,10 @@ if ${BUILD_EXTERNAL} ; then
553553
fi
554554

555555
# Build the whole cmssw-tool-conf toolchain
556-
CMSBUILD_ARGS="--tag ${PR_NUM}"
556+
CMSBUILD_ARGS="--builders 2 --tag ${PR_NUM}"
557+
BUILD_OPTS=$(echo $CONFIG_LINE | tr ';' '\n' | grep "^BUILD_OPTS=" | sed 's|^BUILD_OPTS=||')
558+
MULTIARCH_OPTS=$(echo $CONFIG_LINE | tr ';' '\n' | grep "^MULTIARCH_OPTS=" | sed 's|^MULTIARCH_OPTS=||')
559+
557560
if [ ${PKG_TOOL_VERSION} -gt 31 ] ; then
558561
CMSBUILD_ARGS="${CMSBUILD_ARGS} --define cmsswdata_version_link --monitor --log-deps --force-tag --tag hash --delete-build-directory --link-parent-repository"
559562
if [ "${ALLOW_VERSION_SUFFIX}" = "true" ] ; then
@@ -563,6 +566,13 @@ if ${BUILD_EXTERNAL} ; then
563566
dbg_pkgs=$(echo "${CONFIG_LINE}" | tr ';' '\n' | grep "^DEBUG_EXTERNALS=" | sed 's|.*=||')
564567
CMSBUILD_ARGS="${CMSBUILD_ARGS} --define cms_debug_packages=${dbg_pkgs}"
565568
fi
569+
if [ $(echo "${BUILD_OPTS}" | tr ',' '\n' | grep '^estats$') = "estats" ] ; then
570+
if [ ${PKG_TOOL_VERSION} -ge 34 ] ; then
571+
if ${CMS_BOT_DIR}/get-external-avg-stats.py ${ARCHITECTURE} > ${WORKSPACE}/externals-resource-usage.json ; then
572+
CMSBUILD_ARGS="${CMSBUILD_ARGS} --estats ${WORKSPACE}/externals-resource-usage.json --builders ${NCPU}"
573+
fi
574+
fi
575+
fi
566576
fi
567577
if [ $(grep 'upload-package-store-s3' pkgtools/cmsBuild | wc -l) -gt 0 ] ; then
568578
[ "${CMSBOT_SET_ENV_NO_PACKAGE_STORE}" = "true" ] && UPLOAD_TO_PACKAGE_STORE=false
@@ -572,13 +582,10 @@ if ${BUILD_EXTERNAL} ; then
572582
CMSBUILD_ARGS="${CMSBUILD_ARGS} --no-package-store"
573583
fi
574584
fi
575-
#Process cmsdist Build options
576-
BUILD_OPTS=$(echo $CONFIG_LINE | tr ';' '\n' | grep "^BUILD_OPTS=" | sed 's|^BUILD_OPTS=||')
577-
MULTIARCH_OPTS=$(echo $CONFIG_LINE | tr ';' '\n' | grep "^MULTIARCH_OPTS=" | sed 's|^MULTIARCH_OPTS=||')
578585

579586
PKGS="cms-common cms-git-tools cmssw-tool-conf"
580587
COMPILATION_CMD="PYTHONPATH= ./pkgtools/cmsBuild --server http://${CMSREP_IB_SERVER}/cgi-bin/cmspkg --upload-server ${CMSREP_IB_SERVER} \
581-
${CMSBUILD_ARGS} --builders 2 -i $WORKSPACE/$BUILD_DIR $REF_REPO \
588+
${CMSBUILD_ARGS} -i $WORKSPACE/$BUILD_DIR $REF_REPO \
582589
$SOURCE_FLAG --arch $ARCHITECTURE -j ${NCPU} $(cmsbuild_args "${BUILD_OPTS}" "${MULTIARCH_OPTS}" "${ARCHITECTURE}")"
583590
PR_EXTERNAL_REPO="PR_$(echo ${RPM_UPLOAD_REPO}_${CMSSW_QUEUE}_${ARCHITECTURE} | md5sum | sed 's| .*||' | tail -c 9)"
584591
if [ -e cmsdist/cmssw-tool-conf.spec ] ; then

0 commit comments

Comments
 (0)