add license scan to stage_2
Change-Id: I4da33c0aab23d3785227a6cdb91aea4dcb7e7b4c
Signed-off-by: Mike Marchetti <mmarchetti@sandvine.com>
diff --git a/jenkins/ci-pipelines/ci_stage_2.groovy b/jenkins/ci-pipelines/ci_stage_2.groovy
index c17a731..45cbc7d 100644
--- a/jenkins/ci-pipelines/ci_stage_2.groovy
+++ b/jenkins/ci-pipelines/ci_stage_2.groovy
@@ -38,6 +38,10 @@
project_checkout(url_prefix,project,refspec,revision)
}
+ stage('License Scan') {
+ sh "devops/tools/license_scan.sh"
+ }
+
container_name = "${project}-${branch}".toLowerCase()
stage('Docker-Build') {
diff --git a/tools/license_scan.sh b/tools/license_scan.sh
new file mode 100755
index 0000000..3295600
--- /dev/null
+++ b/tools/license_scan.sh
@@ -0,0 +1,75 @@
+#
+# Copyright 2016 Telefónica Investigación y Desarrollo, S.A.U.
+#
+# 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.
+#
+#!/bin/sh
+
+echo GERRIT BRANCH is $GERRIT_BRANCH
+dpkg -l wget &>/dev/null ||sudo apt-get install -y wget
+dpkg -l curl &>/dev/null ||sudo apt-get install -y curl
+#Curl can be used instead of wget:
+#curl -s -X POST -d @$file https://osm.etsi.org/fossology/?mod=agent_nomos_once
+
+apache=0
+nolicense=0
+other=0
+
+git fetch
+
+RE="FATAL: your file did not get passed through"
+
+for file in $(git diff --name-only origin/$GERRIT_BRANCH); do
+ if [ -f $file ]; then
+ if [ -s $file ]; then
+ license=$(wget -qO - --post-file $file https://osm.etsi.org/fossology/?mod=agent_nomos_once |sed "s/^[ \t]*//;s/[ \t]*$//")
+ if [[ $license =~ $RE ]]; then
+ # possibly we have exceeded the post rate
+ sleep 10
+ license=$(wget -qO - --post-file $file https://osm.etsi.org/fossology/?mod=agent_nomos_once |sed "s/^[ \t]*//;s/[ \t]*$//")
+ fi
+ else
+ license="No_license_found"
+ fi
+ else
+ license="DELETED"
+ fi
+ echo "$file $license"
+ case "$license" in
+ "Apache-2.0")
+ apache=$((apache + 1))
+ ;;
+ "No_license_found")
+ nolicense=$((nolicense + 1))
+ ;;
+ "DELETED")
+ ;;
+ "FATAL:*")
+ ;;
+ *)
+ echo "BAD LICENSE ON FILE $file"
+ other=$((other + 1))
+ ;;
+ esac
+done
+
+if [ $other -gt 0 ]; then
+ echo "FATAL: Non-apache licenses detected"
+ exit 2
+fi
+
+if [ $nolicense -gt 0 ]; then
+ echo "WARNING: Unlicensed files found"
+fi
+
+exit 0