summaryrefslogtreecommitdiffstats
path: root/shell/maven-coverity.sh
diff options
context:
space:
mode:
Diffstat (limited to 'shell/maven-coverity.sh')
-rw-r--r--shell/maven-coverity.sh97
1 files changed, 97 insertions, 0 deletions
diff --git a/shell/maven-coverity.sh b/shell/maven-coverity.sh
new file mode 100644
index 000000000..739754211
--- /dev/null
+++ b/shell/maven-coverity.sh
@@ -0,0 +1,97 @@
+#!/bin/bash
+
+# Copyright 2019 Samsung Electronics Co., Ltd.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -Eeuxo pipefail
+PS4='+['$(readlink -f "$0")' ${FUNCNAME[0]%main}#$LINENO] '
+
+echo '---> maven-coverity.sh'
+
+#-----------------------------------------------------------------------------
+# Get Coverity Scan build tool
+
+curl \
+ --verbose \
+ --silent \
+ --show-error \
+ --fail \
+ --form "project=${COVERITY_PROJECT_NAME}" \
+ --form "token=${COVERITY_TOKEN}" \
+ --output 'coverity_tool.tgz' \
+ 'https://scan.coverity.com/download/linux64'
+
+tar \
+ --extract \
+ --gunzip \
+ --file='coverity_tool.tgz'
+
+COVERITY_BUILD_TOOL_DIRECTORY=$(
+ head -1 <( \
+ tar \
+ --list \
+ --gunzip \
+ --file='coverity_tool.tgz'
+ )
+)
+COVERITY_BINARY_DIRECTORY="${COVERITY_BUILD_TOOL_DIRECTORY}bin"
+test -d "${COVERITY_BINARY_DIRECTORY}" \
+ || exit 1
+export PATH="${PATH}:${COVERITY_BINARY_DIRECTORY}"
+
+rm 'coverity_tool.tgz'
+
+#-----------------------------------------------------------------------------
+# Build
+
+export MAVEN_OPTS
+
+cov-build \
+ --dir 'cov-int' \
+ "${MVN}" clean install \
+ --errors \
+ --global-settings "${GLOBAL_SETTINGS_FILE}" \
+ --settings "${SETTINGS_FILE}" \
+ ${MAVEN_OPTIONS:=} \
+ ${MAVEN_PARAMS:=}
+
+cov-import-scm \
+ --dir 'cov-int' \
+ --scm 'git'
+
+#-----------------------------------------------------------------------------
+# Submit results to Coverity service
+
+tar \
+ --create \
+ --gzip \
+ --file='results.tgz' \
+ 'cov-int'
+
+curl \
+ --verbose \
+ --silent \
+ --show-error \
+ --fail \
+ --form "project=${COVERITY_PROJECT_NAME}" \
+ --form "email=${COVERITY_USER_EMAIL}" \
+ --form "token=${COVERITY_TOKEN}" \
+ --form 'file=@results.tgz' \
+ --form "version=${GIT_COMMIT:0:7}" \
+ --form "description=${GIT_BRANCH}" \
+ 'https://scan.coverity.com/builds'
+
+#-----------------------------------------------------------------------------
+
+exit 0