mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-09 19:58:09 +00:00
63 lines
1.6 KiB
Bash
Executable File
63 lines
1.6 KiB
Bash
Executable File
#!/bin/bash -e
|
|
|
|
if test -z "$COVERITY_TOKEN"
|
|
then
|
|
echo "Need to set a coverity token"
|
|
exit 1
|
|
fi
|
|
|
|
case $(uname -m) in
|
|
i?86)
|
|
BITS=32;;
|
|
amd64|x86_64)
|
|
BITS=64;;
|
|
*)
|
|
echo "Unsupported arch '$(uname -m)'"
|
|
exit 1;;
|
|
esac
|
|
|
|
SCAN_TOOL=https://scan.coverity.com/download/cxx/linux${BITS}
|
|
SOURCE_DIR=$(realpath "$(dirname "${BASH_SOURCE[0]}")"/..)
|
|
BUILD_DIR=${SOURCE_DIR}/coverity-build
|
|
TOOL_DIR=${BUILD_DIR}/coverity-tools
|
|
|
|
# Install coverity tools
|
|
if ! test -d "$TOOL_DIR"
|
|
then
|
|
mkdir -p "$TOOL_DIR"
|
|
curl --silent --show-error --location --data "project=libgit2&token=$COVERITY_TOKEN" "$SCAN_TOOL" |
|
|
tar -xzC "$TOOL_DIR"
|
|
ln -s "$(find "$TOOL_DIR" -type d -name 'cov-analysis*')" "$TOOL_DIR"/cov-analysis
|
|
fi
|
|
|
|
cp "${SOURCE_DIR}/script/user_nodefs.h" "$TOOL_DIR"/cov-analysis/config/
|
|
|
|
# Build libgit2 with Coverity
|
|
mkdir -p "$BUILD_DIR"
|
|
cd "$BUILD_DIR"
|
|
cmake "$SOURCE_DIR"
|
|
COVERITY_UNSUPPORTED=1 \
|
|
"$TOOL_DIR/cov-analysis/bin/cov-build" --dir cov-int \
|
|
cmake --build .
|
|
|
|
# Upload results
|
|
tar -czf libgit2.tgz cov-int
|
|
REVISION=$(cd ${SOURCE_DIR} && git rev-parse --short HEAD)
|
|
HTML="$(curl \
|
|
--silent --show-error \
|
|
--write-out "\n%{http_code}" \
|
|
--form token="$COVERITY_TOKEN" \
|
|
--form email=libgit2@gmail.com \
|
|
--form file=@libgit2.tgz \
|
|
--form version="$REVISION" \
|
|
--form description="libgit2 build" \
|
|
https://scan.coverity.com/builds?project=libgit2)"
|
|
|
|
# Status code is the last line
|
|
STATUS_CODE="$(echo "$HTML" | tail -n1)"
|
|
if test "${STATUS_CODE}" != 200 && test "${STATUS_CODE}" != 201
|
|
then
|
|
echo "Received error code ${STATUS_CODE} from Coverity"
|
|
exit 1
|
|
fi
|