Remove duplicated param in Jenkinsfile
[osm/NBI.git] / Jenkinsfile
index 48102c7..b39b125 100644 (file)
@@ -1,9 +1,24 @@
+/*
+  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.
+*/
 properties([
     parameters([
         string(defaultValue: env.BRANCH_NAME, description: '', name: 'GERRIT_BRANCH'),
         string(defaultValue: 'osm/NBI', description: '', name: 'GERRIT_PROJECT'),
         string(defaultValue: env.GERRIT_REFSPEC, description: '', name: 'GERRIT_REFSPEC'),
         string(defaultValue: env.GERRIT_PATCHSET_REVISION, description: '', name: 'GERRIT_PATCHSET_REVISION'),
+        string(defaultValue: 'patchset-created', description: '', name: 'GERRIT_EVENT_TYPE'),
         string(defaultValue: 'https://osm.etsi.org/gerrit', description: '', name: 'PROJECT_URL_PREFIX'),
         booleanParam(defaultValue: false, description: '', name: 'TEST_INSTALL'),
         string(defaultValue: 'artifactory-osm', description: '', name: 'ARTIFACTORY_SERVER'),
@@ -17,16 +32,62 @@ def devops_checkout() {
 }
 
 node('docker') {
-    checkout scm
-    devops_checkout()
-
-    ci_stage_2 = load "devops/jenkins/ci-pipelines/ci_stage_2.groovy"
-    ci_stage_2.ci_pipeline( 'NBI',
-                           params.PROJECT_URL_PREFIX,
-                           params.GERRIT_PROJECT,
-                           params.GERRIT_BRANCH,
-                           params.GERRIT_REFSPEC,
-                           params.GERRIT_PATCHSET_REVISION,
-                           params.TEST_INSTALL,
-                           params.ARTIFACTORY_SERVER)
+    stage('CURRENT PIPELINE') {
+        checkout scm
+        devops_checkout()
+
+        ci_stage_2 = load "devops/jenkins/ci-pipelines/ci_stage_2.groovy"
+        ci_stage_2.ci_pipeline('NBI',
+                               params.PROJECT_URL_PREFIX,
+                               params.GERRIT_PROJECT,
+                               params.GERRIT_BRANCH,
+                               params.GERRIT_REFSPEC,
+                               params.GERRIT_PATCHSET_REVISION,
+                               // params.TEST_INSTALL,
+                               false,
+                               params.ARTIFACTORY_SERVER)
+    }
+    stage('NEW PIPELINE') {
+        // a devops changes in new-pipeline branch is required to receive GERRIT_EVENT_TYPE
+        // https://osm.etsi.org/gerrit/#/c/osm/devops/+/9701/
+        // Meanwhile, stage_name is predefined
+        def stage_name = "patchset"
+        try {
+            switch(GERRIT_EVENT_TYPE) {
+                case "change-merged":
+                   stage_name = "merge"
+                   break
+
+                case "patchset-created":
+                   stage_name = "patchset"
+                   break
+            }
+        }
+        catch(caughtError) {
+            println("No gerrit event found")
+        }
+
+        def downstream_params = [
+            string(name: 'GERRIT_BRANCH', value: params.GERRIT_BRANCH),
+            string(name: 'GERRIT_PROJECT', value: params.GERRIT_PROJECT),
+            string(name: 'GERRIT_REFSPEC', value: params.GERRIT_REFSPEC),
+            string(name: 'GERRIT_PATCHSET_REVISION', value: params.GERRIT_PATCHSET_REVISION),
+            string(name: 'PROJECT_URL_PREFIX', value: params.PROJECT_URL_PREFIX),
+            booleanParam(name: 'TEST_INSTALL', value: params.TEST_INSTALL),
+            // next params will have to be updated with the proper values
+            string(name: 'IMAGENAME', value: 'opensourcemano/nbi'),
+            string(name: 'DOCKER_REGISTRY', value: 'localhost:5000'),
+            string(name: 'DOCKER_REGISTRY_PROTOCOL', value: 'http://'),
+            string(name: 'DOCKER_CREDENTIALS', value: '')
+        ]
+
+        downstream_job_name = "NBI-${stage_name}"
+        echo "Triggering NEW PIPELINE"
+        build job: "${downstream_job_name}", parameters: downstream_params
+        // build job: "${downstream_job_name}", parameters: downstream_params, propagate: true
+        // It calls the new pipeline defined in Jenkinsfile.new
+        //
+        //build job: '<Job name>', parameters: [[$class: 'StringParameterValue', name: 'param1', value: 'test_param']]
+    }
 }
+