[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] scripts: Add a script to build and submit to coverity.
From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> The submission requires a token and email address, which must be registered as a project admin with the Coverity system. Nonetheless this is a convenient place to keep it. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Took Andy script and: - Wrote commit message. - Generalised the settings handling. - Added code to call the various steps based on the command line. - Refactored construction of the curl command line (mainly in order to quote the email address). - Clone mini-os before build. - Make the upload stage unconditionally to the upload, but not that it still isn't in the default set of actions. Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> --- ijc: Maybe we can think of a way to add this to osstest while still keeping the coverity token private? --- scripts/coverity-build.sh | 108 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100755 scripts/coverity-build.sh diff --git a/scripts/coverity-build.sh b/scripts/coverity-build.sh new file mode 100755 index 0000000..91defed --- /dev/null +++ b/scripts/coverity-build.sh @@ -0,0 +1,108 @@ +#!/bin/bash -e +# +# Copyright 2015 Andrew Cooper <andrew.cooper3@xxxxxxxxxx> +# +# WARNING: This script will blow away any changes in your git working +# directory. It should probably be run in a dedicated checkout. +# +# Requires the coverity tools (e.g. cov-build) to be in $PATH. +# +# Set $COV_EMAIL and $COV_TOKEN to credentials, otherwise it will +# prompt for them. +# +# ./scripts/coverity-build.sh <steps> +# +# By default <steps> is to do all the prep and build, but not to upload. +# + +function checktools () +{ + if ! command -v cov-build ; then + echo "Coverity tools (cov-build, ...) must be in \$PATH" + exit 1 + fi +} +function hardclean () +{ + echo "Cleaning working tree" + git reset --hard + make distclean -j8 +} + +function update () +{ + echo "Pulling latest staging" + git fetch --all + git checkout master + git pull --ff + git checkout staging + git pull --ff +} + +function softclean () +{ + echo "Removing any remaining junk" + git clean -dxf +} + +function vars () +{ + export COV_HEAD=$(git rev-parse HEAD) + export COV_TARBALL="xen-coverity-$COV_HEAD.tgz" + export COV_VERSION="Xen-$(make -C xen xenversion --no-print-directory)" +} + +function prebuild () +{ + echo "Running the pre-build" + + ./configure + make -C tools/firmware/etherboot all -j4 + make mini-os-dir +} + +function build () +{ + echo "Starting Coverity build from $(pwd)" + + cov-build --dir cov-int make -C extras/mini-os/ + cov-build --dir cov-int make xen tools -j4 + tar czvf $COV_TARBALL cov-int +} + +function upload () +{ + if [ -z "$COV_EMAIL" ] ; then + read -p "Email: " COV_EMAIL + fi + if [ -z "$COV_TOKEN" ] ; then + read -p "Form token: " COV_TOKEN + fi + + declare -a curl_args + curl_args+=("--form" "token=$COV_TOKEN") + curl_args+=("--form" "email=$COV_EMAIL") + curl_args+=("--form" "file=@$COV_TARBALL") + curl_args+=("--form" "version=$COV_VERSION") + curl_args+=("--form" "description=$COV_HEAD") + curl_args+=("https://scan.coverity.com/builds?project=XenProject") + + echo "Uploading... curl ${curl_args[@]}" + echo curl "${curl_args[@]}" | tee cov-upload.log +} + +function all () +{ + checktools + hardclean + softclean + update + softclean + vars + prebuild + build +} + +for cmd in ${@:-all} ; do + eval $cmd +done -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |