|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] scripts: Add a script to build and submit to coverity.
On 10/12/15 16:53, Ian Campbell wrote:
> 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:
's
>
> - 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>
Looks good to me.
Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, perhaps with a
few clarifications to comments for other benifits. See below.
> ---
> ijc: Maybe we can think of a way to add this to osstest while still
> keeping the coverity token private?
This would be ideal.
> ---
> 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"
This is "all the things which might end up calling $(CC) which we don't
care about analysing"
> +
> + ./configure
> + make -C tools/firmware/etherboot all -j4
> + make mini-os-dir
> +}
> +
> +function build ()
> +{
> + echo "Starting Coverity build from $(pwd)"
And "all the things we care about analysing".
~Andrew
> +
> + 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
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |