mirror of
https://gitee.com/milvus-io/milvus.git
synced 2024-12-02 20:09:57 +08:00
1b60e3bca6
* Increase memory limit in Jenkins CI Signed-off-by: quicksilver <zhifeng.zhang@zilliz.com> * Add pod tolerations to slave pods * Refactor ci/scripts/build.sh * Refactor ci/scripts/build.sh * Refactor CI * Refactor CI * Refactor CI * Refactor CI * Refactor CI * Refactor CI * Refactor CI
105 lines
3.3 KiB
Bash
Executable File
105 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
SOURCE="${BASH_SOURCE[0]}"
|
|
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
|
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
|
SOURCE="$(readlink "$SOURCE")"
|
|
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
|
done
|
|
SCRIPTS_DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
|
|
|
HELP="
|
|
Usage:
|
|
$0 [flags] [Arguments]
|
|
|
|
-b Core Code build directory
|
|
-c Codecov token
|
|
-h or --help Print help information
|
|
|
|
|
|
Use \"$0 --help\" for more information about a given command.
|
|
"
|
|
|
|
ARGS=`getopt -o "b:c:h" -l "help" -n "$0" -- "$@"`
|
|
|
|
eval set -- "${ARGS}"
|
|
|
|
while true ; do
|
|
case "$1" in
|
|
-b)
|
|
# o has an optional argument. As we are in quoted mode,
|
|
# an empty parameter will be generated if its optional
|
|
# argument is not found.
|
|
case "$2" in
|
|
"") echo "Option CORE_BUILD_DIR, no argument"; exit 1 ;;
|
|
*) CORE_BUILD_DIR=$2 ; shift 2 ;;
|
|
esac ;;
|
|
-c)
|
|
case "$2" in
|
|
"") echo "Option CODECOV_TOKEN, no argument"; exit 1 ;;
|
|
*) CODECOV_TOKEN=$2 ; shift 2 ;;
|
|
esac ;;
|
|
-h|--help) echo -e "${HELP}" ; exit 0 ;;
|
|
--) shift ; break ;;
|
|
*) echo "Internal error!" ; exit 1 ;;
|
|
esac
|
|
done
|
|
|
|
# Set defaults for vars modified by flags to this script
|
|
MILVUS_CORE_DIR="${SCRIPTS_DIR}/../../core"
|
|
CORE_BUILD_DIR=${CORE_BUILD_DIR:="${MILVUS_CORE_DIR}/cmake_build"}
|
|
|
|
LCOV_CMD="lcov"
|
|
# LCOV_GEN_CMD="genhtml"
|
|
|
|
FILE_INFO_BASE="base.info"
|
|
FILE_INFO_MILVUS="server.info"
|
|
FILE_INFO_OUTPUT="output.info"
|
|
FILE_INFO_OUTPUT_NEW="output_new.info"
|
|
DIR_LCOV_OUTPUT="lcov_out"
|
|
|
|
DIR_GCNO="${CORE_BUILD_DIR}"
|
|
DIR_UNITTEST="${INSTALL_PREFIX}/unittest"
|
|
|
|
cd ${SCRIPTS_DIR}
|
|
|
|
# delete old code coverage info files
|
|
rm -rf ${DIR_LCOV_OUTPUT}
|
|
rm -f ${FILE_INFO_BASE} ${FILE_INFO_MILVUS} ${FILE_INFO_OUTPUT} ${FILE_INFO_OUTPUT_NEW}
|
|
|
|
# get baseline
|
|
${LCOV_CMD} -c -i -d ${DIR_GCNO} -o "${FILE_INFO_BASE}"
|
|
if [ $? -ne 0 ]; then
|
|
echo "gen baseline coverage run failed"
|
|
exit -1
|
|
fi
|
|
|
|
# gen code coverage
|
|
${LCOV_CMD} -d ${DIR_GCNO} -o "${FILE_INFO_MILVUS}" -c
|
|
# merge coverage
|
|
${LCOV_CMD} -a ${FILE_INFO_BASE} -a ${FILE_INFO_MILVUS} -o "${FILE_INFO_OUTPUT}"
|
|
|
|
# remove third party from tracefiles
|
|
${LCOV_CMD} -r "${FILE_INFO_OUTPUT}" -o "${FILE_INFO_OUTPUT_NEW}" \
|
|
"/usr/*" \
|
|
"*/boost/*" \
|
|
"*/cmake_build/*_ep-prefix/*" \
|
|
"*/src/index/cmake_build*" \
|
|
"*/src/index/thirdparty*" \
|
|
"*/src/grpc*" \
|
|
"*/src/metrics/MetricBase.h" \
|
|
"*/src/server/Server.cpp" \
|
|
"*/src/server/DBWrapper.cpp" \
|
|
"*/src/server/grpc_impl/GrpcServer.cpp" \
|
|
"*/thirdparty/*"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "gen ${FILE_INFO_OUTPUT_NEW} failed"
|
|
exit 2
|
|
fi
|
|
|
|
if [[ -n ${CODECOV_TOKEN} ]];then
|
|
export CODECOV_TOKEN="${CODECOV_TOKEN}"
|
|
curl -s https://codecov.io/bash | bash -s - -f output_new.info || echo "Codecov did not collect coverage reports"
|
|
fi
|