| properties([ |
| parameters([ |
| string(defaultValue: env.GERRIT_BRANCH, description: '', name: 'GERRIT_BRANCH'), |
| string(defaultValue: env.GERRIT_PROJEC, description: '', name: 'GERRIT_PROJECT'), |
| string(defaultValue: env.GERRIT_REFSPEC, description: '', name: 'GERRIT_REFSPEC'), |
| string(defaultValue: env.GERRIT_PATCHSET_REVISION, description: '', name: 'GERRIT_PATCHSET_REVISION'), |
| ]) |
| ]) |
| |
| def Get_MDG(project) { |
| // split the project. |
| def values = project.split('/') |
| if ( values.size() > 1 ) { |
| return values[1] |
| } |
| // no prefix, likely just the project name then |
| return project |
| } |
| |
| def project_checkout() { |
| // checkout the project |
| git url: "https://osm.etsi.org/gerrit/${GERRIT_PROJECT}" |
| |
| sh "git fetch origin ${GERRIT_REFSPEC}" |
| if (GERRIT_PATCHSET_REVISION.size() > 0 ) { |
| sh "git checkout -f ${GERRIT_PATCHSET_REVISION}" |
| } |
| } |
| |
| def devops_checkout() { |
| dir('devops') { |
| git url: 'https://osm.etsi.org/gerrit/osm/devops' |
| } |
| } |
| |
| node { |
| mdg = Get_MDG("${GERRIT_PROJECT}") |
| println("MDG is ${mdg}") |
| |
| if ( env.GERRIT_EVENT_TYPE != null ) { |
| // pipeline running from gerrit trigger. |
| // kickoff the downstream multibranch pipeline |
| def downstream_params = [ |
| string(name: 'GERRIT_BRANCH', value: GERRIT_BRANCH), |
| string(name: 'GERRIT_PROJECT', value: GERRIT_PROJECT), |
| string(name: 'GERRIT_REFSPEC', value: GERRIT_REFSPEC), |
| string(name: 'GERRIT_PATCHSET_REVISION', value: GERRIT_PATCHSET_REVISION), |
| ] |
| result = build job: "${mdg}/${GERRIT_BRANCH}", parameters: downstream_params, propagate: true |
| if (result.getResult() != 'SUCCESS') { |
| project = result.getProjectName() |
| build = result.getNumber() |
| error("${project} build ${build} failed") |
| } |
| } |
| else { |
| stage('Prepare') { |
| sh 'env' |
| devops_checkout() |
| } |
| |
| stage('Checkout') { |
| project_checkout() |
| } |
| |
| container_name = "${GERRIT_PROJECT}-${GERRIT_BRANCH}" |
| |
| stage('Docker-Build') { |
| sh "docker build -t ${container_name} ." |
| } |
| |
| withDockerContainer("${container_name}") { |
| stage('Docker-Setup') { |
| sh ''' |
| groupadd -o -g $(id -g) -r jenkins |
| useradd -o -u $(id -u) --create-home -r -g jenkins jenkins |
| ''' |
| } |
| stage('Test') { |
| sh 'devops-stages/stage-test.sh' |
| } |
| stage('Build') { |
| sh 'devops-stages/stage-build.sh' |
| } |
| stage('Archive') { |
| sh 'devops-stages/stage-archive.sh' |
| archiveArtifacts artifacts: "dists/**,pool/${mdg}/*.deb", fingerprint: true |
| } |
| } |
| } |
| } |