Skip to content
Snippets Groups Projects
Commit 55ba38c0 authored by OZGCloud's avatar OZGCloud
Browse files

Merge remote-tracking branch 'origin/master' into OZG-2737_MigrationUserId

parents 31788199 a97be41f
No related branches found
No related tags found
Loading
...@@ -23,17 +23,10 @@ pipeline { ...@@ -23,17 +23,10 @@ pipeline {
steps { steps {
script { script {
FAILED_STAGE = env.STAGE_NAME FAILED_STAGE = env.STAGE_NAME
def rootPom = readMavenPom file: 'pom.xml' def rootVersion = getPomVersion('pom.xml')
def rootVersion = rootPom.version def serverVersion = getPomVersion('pluto-server/pom.xml')
def interfaceVersion = getPomVersion('pluto-interface/pom.xml')
def serverPom = readMavenPom file: 'pluto-server/pom.xml' def mailVersion = getPomVersion('mail-service/pom.xml')
def serverVersion = serverPom.version
def interfacePom = readMavenPom file: 'pluto-interface/pom.xml'
def interfaceVersion = interfacePom.version
def mailPom = readMavenPom file: 'mail-service/pom.xml'
def mailVersion = mailPom.version
if(env.BRANCH_NAME == 'release'){ if(env.BRANCH_NAME == 'release'){
if ( !(rootVersion ==~ RELEASE_REGEX) || !(serverVersion ==~ RELEASE_REGEX) || !(interfaceVersion ==~ RELEASE_REGEX) || !(mailVersion ==~ RELEASE_REGEX)) { if ( !(rootVersion ==~ RELEASE_REGEX) || !(serverVersion ==~ RELEASE_REGEX) || !(interfaceVersion ==~ RELEASE_REGEX) || !(mailVersion ==~ RELEASE_REGEX)) {
...@@ -105,61 +98,57 @@ pipeline { ...@@ -105,61 +98,57 @@ pipeline {
} }
} }
stage('Push Docker image') { stage('Tag and Push Docker image') {
steps { steps {
script { script {
FAILED_STAGE=env.STAGE_NAME FAILED_STAGE=env.STAGE_NAME
def pom = readMavenPom file: 'pom.xml' IMAGE_TAG = generateImageTag()
def version = pom.version
container("docker") {
withCredentials([usernamePassword(credentialsId: 'jenkins-docker-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) {
sh 'docker login docker.ozg-sh.de -u ${USER} -p ${PASSWORD}'
sh "docker tag docker.ozg-sh.de/pluto:build-latest docker.ozg-sh.de/pluto:${env.BRANCH_NAME}-${version}" tagAndPushDockerImage(IMAGE_TAG)
sh "docker push docker.ozg-sh.de/pluto:${env.BRANCH_NAME}-${version}"
if (env.BRANCH_NAME == 'master') { if (env.BRANCH_NAME == 'master') {
sh 'docker tag docker.ozg-sh.de/pluto:build-latest docker.ozg-sh.de/pluto:e2e-test' tagAndPushDockerImage('snapshot-latest')
sh 'docker push docker.ozg-sh.de/pluto:e2e-test' tagAndPushDockerImage('e2e-test')
sh 'docker tag docker.ozg-sh.de/pluto:build-latest docker.ozg-sh.de/pluto:snapshot-latest'
sh 'docker push docker.ozg-sh.de/pluto:snapshot-latest'
}
if (env.BRANCH_NAME == 'release') {
sh 'docker tag docker.ozg-sh.de/pluto:build-latest docker.ozg-sh.de/pluto:latest'
sh 'docker push docker.ozg-sh.de/pluto:latest'
}
} }
else if (env.BRANCH_NAME == 'release') {
tagAndPushDockerImage('latest')
} }
} }
} }
} }
stage('Deploy Pluto') { stage('Trigger Dev rollout') {
when { when {
anyOf {
branch 'master' branch 'master'
branch 'release'
} }
}
steps { steps {
script { script {
FAILED_STAGE = env.STAGE_NAME FAILED_STAGE = env.STAGE_NAME
}
container("kubectl"){
script {
if (env.BRANCH_NAME == 'master') {
sh 'kubectl rollout restart deployment/pluto -n sh-kiel-dev'
sh 'kubectl rollout status deployment/pluto -n sh-kiel-dev'
sh 'kubectl rollout restart deployment/pluto -n sh-ea-dev' checkoutProvisioningRepo()
sh 'kubectl rollout status deployment/pluto -n sh-ea-dev'
setNewPlutoProvisioningVersion('dev')
pushNewProvisioningVersion('dev')
} }
} }
} }
stage('Trigger Test | Stage rollout') {
when {
branch 'release'
}
steps {
script {
FAILED_STAGE = env.STAGE_NAME
checkoutProvisioningRepo()
setNewPlutoProvisioningVersion('test')
setNewPlutoProvisioningVersion('stage')
pushNewProvisioningVersion('test stage')
}
} }
} }
...@@ -246,6 +235,80 @@ pipeline { ...@@ -246,6 +235,80 @@ pipeline {
} }
} }
Void tagAndPushDockerImage(String newTag){
container("docker") {
withCredentials([usernamePassword(credentialsId: 'jenkins-docker-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) {
sh 'docker login docker.ozg-sh.de -u ${USER} -p ${PASSWORD}'
sh "docker tag docker.ozg-sh.de/pluto:build-latest docker.ozg-sh.de/pluto:${newTag}"
sh "docker push docker.ozg-sh.de/pluto:${newTag}"
}
}
}
String getPomVersion(String pomFile){
def pom = readMavenPom file: pomFile
return pom.version
}
String generateImageTag() {
def imageTag = "${env.BRANCH_NAME}-${getPomVersion('pom.xml')}"
if (env.BRANCH_NAME == 'master') {
imageTag += "-${env.GIT_COMMIT.take(7)}"
}
return imageTag
}
Void checkoutProvisioningRepo() {
withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) {
sh 'git clone https://${USER}:${TOKEN}@git.ozg-sh.de/mgm/provisioning.git'
if (env.BRANCH_NAME == 'release') {
dir('provisioning') {
sh 'git checkout release'
}
}
}
}
Void setNewPlutoProvisioningVersion(String environment) {
dir("provisioning") {
def envFile = "inventories/group_vars/${environment}/versions"
if (env.BRANCH_NAME == 'release') {
envFile = "playbook/inventory/versions/${environment}.yml"
}
def envVersions = readYaml file: envFile
envVersions.versions.pluto.image.tag = IMAGE_TAG
writeYaml file: envFile, data: envVersions, overwrite: true
}
}
Void pushNewProvisioningVersion(String environment) {
withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) {
dir('provisioning') {
if (env.BRANCH_NAME == 'release') {
sh 'git add playbook/inventory/versions/.'
}
else {
sh 'git add inventories/group_vars/*/versions'
}
sh 'git config user.email "jenkins@ozg.de"'
sh 'git config user.name "jenkins"'
sh "git commit -m 'jenkins rollout ${environment} pluto version ${IMAGE_TAG}'"
sh 'git push https://${USER}:${TOKEN}@git.ozg-sh.de/mgm/provisioning.git'
}
}
}
Void sendFailureMessage() { Void sendFailureMessage() {
def room = '' def room = ''
def data = """{"msgtype":"m.text", \ def data = """{"msgtype":"m.text", \
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment