| /* |
| 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'), |
| ]) |
| ]) |
| |
| def devops_checkout() { |
| dir('devops') { |
| git url: "${PROJECT_URL_PREFIX}/osm/devops", branch: params.GERRIT_BRANCH |
| } |
| } |
| |
| node('docker') { |
| 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']] |
| } |
| } |
| |