adding license check job+pipeline
Change-Id: I843f9fbbeba024290ace643ba00034a0c11d0b70
diff --git a/jjb/license-check.yaml b/jjb/license-check.yaml
new file mode 100644
index 0000000..cf0c87d
--- /dev/null
+++ b/jjb/license-check.yaml
@@ -0,0 +1,47 @@
+---
+# kubespray installation validation job
+
+- project:
+ name: license-check
+
+ project-name: '{name}'
+
+ jobs:
+ - 'license-check'
+
+- job-template:
+ name: 'mcord-license-check'
+ id: license-check
+ description: |
+ <!-- Managed by Jenkins Job Builder -->
+ Copyright (c) 2018 Open Networking Foundation (ONF)
+
+ parameters:
+ - string:
+ name: TestNodeName
+ default: 'ubuntu16.04-basebuild-4c-8g'
+ description: 'Jenkins node name of TestVM Node'
+
+ - string:
+ name: branch
+ default: 'master'
+ description: 'Gerrit Branch'
+
+ - string:
+ name: repos
+ default: 'c3po'
+ description: 'Name of the repos to check with this job'
+
+ - string:
+ name: prefix
+ default: 'cord-m'
+ description: 'The prefix to give to the projects in the BlackDuck dashboard'
+
+ - string:
+ name: notificationEmail
+ default: 'luca@opennetworking.org'
+ description: ''
+
+ concurrent: true
+
+ dsl: !include-raw-escape: pipeline/license-check.groovy
diff --git a/jjb/pipeline/license-check.groovy b/jjb/pipeline/license-check.groovy
new file mode 100644
index 0000000..69212c6
--- /dev/null
+++ b/jjb/pipeline/license-check.groovy
@@ -0,0 +1,50 @@
+// Copyright 2017-present Open Networking Foundation
+//
+// 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.
+
+repos = params.repos.split(",")
+
+def stepsForParallel = repos.collectEntries {
+ ["${it}" : checkRepo(it)]
+}
+
+node ("${TestNodeName}") {
+ timeout (100) {
+ try {
+ stage ("Cleanup") {
+ sh returnStdout: true, script: "rm -rf *"
+ }
+ stage ("Check repositories") {
+ parallel stepsForParallel
+ }
+ currentBuild.result = 'SUCCESS'
+ } catch (err) {
+ currentBuild.result = 'FAILURE'
+ step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: "${notificationEmail}", sendToIndividuals: false])
+ }
+ echo "RESULT: ${currentBuild.result}"
+ }
+}
+
+def checkRepo(repo) {
+ return {
+ withCredentials([sshUserPrivateKey(credentialsId: '315e1f56-7193-464e-8af1-97bf7b1ee541', keyFileVariable: 'KEY')]) {
+ sh returnStdout: true, script: """
+ chmod 600 $KEY && eval `ssh-agent -s` && ssh-add $KEY &&
+ ssh-keyscan -p 29418 gerrit.opencord.org >> ~/.ssh/known_hosts &&
+ git clone -b ${branch} ssh://mcord-private@gerrit.opencord.org:29418/${repo}
+ """
+ }
+ hub_detect("--detect.source.path=${repo} --detect.blackduck.signature.scanner.snippet.mode=true --detect.project.name=${prefix}-${repo} --detect.project.version.name=${branch} --detect.search.depth=20")
+ }
+}