-pipeline {
- agent any
- stages {
- stage("test") {
+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 {
+ stage('Prepare') {
+ sh 'env'
+ devops_checkout()
+ }
+
+ stage('Checkout') {
+ project_checkout()
+ }
+
+ container_name = "${GERRIT_PROJECT}-${GERRIT_BRANCH}"
+
+ mdg = Get_MDG("${GERRIT_PROJECT}")
+ println("MDG is ${mdg}")
+
+ 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
}
}
}