| Mike Marchetti | 52de972 | 2017-06-22 15:18:23 -0400 | [diff] [blame] | 1 | def Get_MDG(project) { |
| 2 | // split the project. |
| 3 | def values = project.split('/') |
| 4 | if ( values.size() > 1 ) { |
| 5 | return values[1] |
| 6 | } |
| 7 | // no prefix, likely just the project name then |
| 8 | return project |
| 9 | } |
| 10 | |
| 11 | def project_checkout() { |
| 12 | // checkout the project |
| Mike Marchetti | 66e1c2b | 2017-06-22 17:41:38 -0400 | [diff] [blame^] | 13 | git url: "https://osm.etsi.org/gerrit/${GERRIT_PROJECT}" |
| Mike Marchetti | 52de972 | 2017-06-22 15:18:23 -0400 | [diff] [blame] | 14 | |
| Mike Marchetti | 66e1c2b | 2017-06-22 17:41:38 -0400 | [diff] [blame^] | 15 | sh "git fetch origin ${GERRIT_REFSPEC}" |
| 16 | if (GERRIT_PATCHSET_REVISION.size() > 0 ) { |
| 17 | sh "git checkout -f ${GERRIT_PATCHSET_REVISION}" |
| Mike Marchetti | 52de972 | 2017-06-22 15:18:23 -0400 | [diff] [blame] | 18 | } |
| 19 | } |
| 20 | |
| 21 | def devops_checkout() { |
| 22 | dir('devops') { |
| 23 | git url: 'https://osm.etsi.org/gerrit/osm/devops' |
| 24 | } |
| 25 | } |
| 26 | |
| 27 | node { |
| Mike Marchetti | 66e1c2b | 2017-06-22 17:41:38 -0400 | [diff] [blame^] | 28 | mdg = Get_MDG("${GERRIT_PROJECT}") |
| Mike Marchetti | 52de972 | 2017-06-22 15:18:23 -0400 | [diff] [blame] | 29 | println("MDG is ${mdg}") |
| 30 | |
| Mike Marchetti | 66e1c2b | 2017-06-22 17:41:38 -0400 | [diff] [blame^] | 31 | if ( GERRIT_EVENT_TYPE.equals('change-merged') ) { |
| Mike Marchetti | 79ecf48 | 2017-06-22 17:21:44 -0400 | [diff] [blame] | 32 | def downstream_params = [ |
| Mike Marchetti | 66e1c2b | 2017-06-22 17:41:38 -0400 | [diff] [blame^] | 33 | string(name: 'GERRIT_BRANCH', value: GERRIT_BRANCH), |
| 34 | string(name: 'GERRIT_PROJECT', value: GERRIT_PROJECT), |
| 35 | string(name: 'GERRIT_REFSPEC', value: GERRIT_REFSPEC), |
| 36 | string(name: 'GERRIT_PATCHSET_REVISION', value: GERRIT_PATCHSET_REVISION), |
| Mike Marchetti | 79ecf48 | 2017-06-22 17:21:44 -0400 | [diff] [blame] | 37 | ] |
| Mike Marchetti | 66e1c2b | 2017-06-22 17:41:38 -0400 | [diff] [blame^] | 38 | result = build job: "${mdg}/${GERRIT_BRANCH}", parameters: downstream_params, propagate: true |
| Mike Marchetti | 79ecf48 | 2017-06-22 17:21:44 -0400 | [diff] [blame] | 39 | if (result.getResult() != 'SUCCESS') { |
| 40 | project = result.getProjectName() |
| 41 | build = result.getNumber() |
| 42 | error("${project} build ${build} failed") |
| 43 | } |
| Mike Marchetti | 52de972 | 2017-06-22 15:18:23 -0400 | [diff] [blame] | 44 | } |
| Mike Marchetti | 79ecf48 | 2017-06-22 17:21:44 -0400 | [diff] [blame] | 45 | else { |
| 46 | stage('Prepare') { |
| 47 | sh 'env' |
| 48 | devops_checkout() |
| 49 | } |
| Mike Marchetti | 52de972 | 2017-06-22 15:18:23 -0400 | [diff] [blame] | 50 | |
| Mike Marchetti | 79ecf48 | 2017-06-22 17:21:44 -0400 | [diff] [blame] | 51 | stage('Checkout') { |
| 52 | project_checkout() |
| Mike Marchetti | 52de972 | 2017-06-22 15:18:23 -0400 | [diff] [blame] | 53 | } |
| Mike Marchetti | 79ecf48 | 2017-06-22 17:21:44 -0400 | [diff] [blame] | 54 | |
| Mike Marchetti | 66e1c2b | 2017-06-22 17:41:38 -0400 | [diff] [blame^] | 55 | container_name = "${GERRIT_PROJECT}-${GERRIT_BRANCH}" |
| Mike Marchetti | 79ecf48 | 2017-06-22 17:21:44 -0400 | [diff] [blame] | 56 | |
| 57 | |
| 58 | stage('Docker-Build') { |
| 59 | sh "docker build -t ${container_name} ." |
| Mike Marchetti | 52de972 | 2017-06-22 15:18:23 -0400 | [diff] [blame] | 60 | } |
| Mike Marchetti | 79ecf48 | 2017-06-22 17:21:44 -0400 | [diff] [blame] | 61 | |
| 62 | withDockerContainer("${container_name}") { |
| 63 | stage('Docker-Setup') { |
| 64 | sh ''' |
| 65 | groupadd -o -g $(id -g) -r jenkins |
| 66 | useradd -o -u $(id -u) --create-home -r -g jenkins jenkins |
| 67 | ''' |
| 68 | } |
| 69 | stage('Test') { |
| 70 | sh 'devops-stages/stage-test.sh' |
| 71 | } |
| 72 | stage('Build') { |
| 73 | sh 'devops-stages/stage-build.sh' |
| 74 | } |
| 75 | stage('Archive') { |
| 76 | sh 'devops-stages/stage-archive.sh' |
| 77 | archiveArtifacts artifacts: "dists/**,pool/${mdg}/*.deb", fingerprint: true |
| 78 | } |
| Mike Marchetti | 52de972 | 2017-06-22 15:18:23 -0400 | [diff] [blame] | 79 | } |
| Mike Marchetti | 79ecf48 | 2017-06-22 17:21:44 -0400 | [diff] [blame] | 80 | } |
| Mike Marchetti | 30b8eb7 | 2017-06-22 09:15:03 -0400 | [diff] [blame] | 81 | } |