blob: d0bc7ac807092221cce926db24d995abb02aadeb [file] [log] [blame]
Mike Marchetti2cc51442017-06-23 10:24:22 -04001properties([
2 parameters([
3 string(defaultValue: env.GERRIT_BRANCH, description: '', name: 'GERRIT_BRANCH'),
4 string(defaultValue: env.GERRIT_PROJEC, description: '', name: 'GERRIT_PROJECT'),
5 string(defaultValue: env.GERRIT_REFSPEC, description: '', name: 'GERRIT_REFSPEC'),
6 string(defaultValue: env.GERRIT_PATCHSET_REVISION, description: '', name: 'GERRIT_PATCHSET_REVISION'),
7 ])
8])
9
Mike Marchetti52de9722017-06-22 15:18:23 -040010def Get_MDG(project) {
11 // split the project.
12 def values = project.split('/')
13 if ( values.size() > 1 ) {
14 return values[1]
15 }
16 // no prefix, likely just the project name then
17 return project
18}
19
20def project_checkout() {
21 // checkout the project
Mike Marchetti66e1c2b2017-06-22 17:41:38 -040022 git url: "https://osm.etsi.org/gerrit/${GERRIT_PROJECT}"
Mike Marchetti52de9722017-06-22 15:18:23 -040023
Mike Marchetti66e1c2b2017-06-22 17:41:38 -040024 sh "git fetch origin ${GERRIT_REFSPEC}"
25 if (GERRIT_PATCHSET_REVISION.size() > 0 ) {
26 sh "git checkout -f ${GERRIT_PATCHSET_REVISION}"
Mike Marchetti52de9722017-06-22 15:18:23 -040027 }
28}
29
30def devops_checkout() {
31 dir('devops') {
32 git url: 'https://osm.etsi.org/gerrit/osm/devops'
33 }
34}
35
36node {
Mike Marchetti66e1c2b2017-06-22 17:41:38 -040037 mdg = Get_MDG("${GERRIT_PROJECT}")
Mike Marchetti52de9722017-06-22 15:18:23 -040038 println("MDG is ${mdg}")
39
Mike Marchetti2cc51442017-06-23 10:24:22 -040040 if ( env.GERRIT_EVENT_TYPE != null ) {
41 // pipeline running from gerrit trigger.
42 // kickoff the downstream multibranch pipeline
Mike Marchetti79ecf482017-06-22 17:21:44 -040043 def downstream_params = [
Mike Marchetti66e1c2b2017-06-22 17:41:38 -040044 string(name: 'GERRIT_BRANCH', value: GERRIT_BRANCH),
45 string(name: 'GERRIT_PROJECT', value: GERRIT_PROJECT),
46 string(name: 'GERRIT_REFSPEC', value: GERRIT_REFSPEC),
47 string(name: 'GERRIT_PATCHSET_REVISION', value: GERRIT_PATCHSET_REVISION),
Mike Marchetti79ecf482017-06-22 17:21:44 -040048 ]
Mike Marchetti66e1c2b2017-06-22 17:41:38 -040049 result = build job: "${mdg}/${GERRIT_BRANCH}", parameters: downstream_params, propagate: true
Mike Marchetti79ecf482017-06-22 17:21:44 -040050 if (result.getResult() != 'SUCCESS') {
51 project = result.getProjectName()
52 build = result.getNumber()
53 error("${project} build ${build} failed")
54 }
Mike Marchetti52de9722017-06-22 15:18:23 -040055 }
Mike Marchetti79ecf482017-06-22 17:21:44 -040056 else {
57 stage('Prepare') {
58 sh 'env'
59 devops_checkout()
60 }
Mike Marchetti52de9722017-06-22 15:18:23 -040061
Mike Marchetti79ecf482017-06-22 17:21:44 -040062 stage('Checkout') {
63 project_checkout()
Mike Marchetti52de9722017-06-22 15:18:23 -040064 }
Mike Marchetti79ecf482017-06-22 17:21:44 -040065
Mike Marchetti66e1c2b2017-06-22 17:41:38 -040066 container_name = "${GERRIT_PROJECT}-${GERRIT_BRANCH}"
Mike Marchetti79ecf482017-06-22 17:21:44 -040067
Mike Marchetti79ecf482017-06-22 17:21:44 -040068 stage('Docker-Build') {
69 sh "docker build -t ${container_name} ."
Mike Marchetti52de9722017-06-22 15:18:23 -040070 }
Mike Marchetti79ecf482017-06-22 17:21:44 -040071
72 withDockerContainer("${container_name}") {
73 stage('Docker-Setup') {
74 sh '''
75 groupadd -o -g $(id -g) -r jenkins
76 useradd -o -u $(id -u) --create-home -r -g jenkins jenkins
77 '''
78 }
79 stage('Test') {
80 sh 'devops-stages/stage-test.sh'
81 }
82 stage('Build') {
83 sh 'devops-stages/stage-build.sh'
84 }
85 stage('Archive') {
86 sh 'devops-stages/stage-archive.sh'
87 archiveArtifacts artifacts: "dists/**,pool/${mdg}/*.deb", fingerprint: true
88 }
Mike Marchetti52de9722017-06-22 15:18:23 -040089 }
Mike Marchetti79ecf482017-06-22 17:21:44 -040090 }
Mike Marchetti30b8eb72017-06-22 09:15:03 -040091}