Skip to content
Snippets Groups Projects
Commit 6843f496 authored by OZGCloud's avatar OZGCloud
Browse files

ozg-2502 trigger rollout

parent 027c7116
Branches
Tags
No related merge requests found
......@@ -103,6 +103,31 @@ pipeline {
}
}
stage('Sonar Checks') {
steps {
script {
FAILED_STAGE=env.STAGE_NAME
}
container("maven-17") {
configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
dir('user-manager-server') {
script {
try {
if (env.BRANCH_NAME == 'master') {
withSonarQubeEnv('sonarqube-ozg-sh'){
sh 'mvn -s $MAVEN_SETTINGS sonar:sonar'
}
}
} catch (Exception e) {
unstable("SonarQube failed")
}
}
}
}
}
}
}
stage('Push Docker image') {
steps {
script {
......@@ -136,52 +161,59 @@ pipeline {
}
}
stage('Deploy UserManager') {
stage('Rollout Dev UserManager') {
when {
anyOf {
branch 'master'
branch 'release'
}
}
steps {
script {
FAILED_STAGE = env.STAGE_NAME
}
container("kubectl"){
script {
if (env.BRANCH_NAME == 'master') {
sh 'kubectl rollout restart deployment/user-manager -n sh-kiel-dev'
sh 'kubectl rollout status deployment/user-manager -n sh-kiel-dev'
initK8s()
// sh 'kubectl rollout restart deployment/user-manager -n sh-ea-dev'
// sh 'kubectl rollout status deployment/user-manager -n sh-ea-dev'
container("k8s"){
sh """
error=0
for NAMESPACE in \$(kubectl get namespaces -l 'ozg-environment=dev,update-namespace notin (false)' -o custom-columns=NAME:.metadata.name --no-headers); \
do \
if kubectl get deployment -n \$NAMESPACE | grep user-manager; then \
kubectl rollout restart deployment/user-manager -n \$NAMESPACE; \
if ! kubectl rollout status deployment/user-manager -n \$NAMESPACE; then \
error=1; \
fi; \
fi; \
done
exit \$error
"""
}
}
}
}
stage('Trigger Test | Stage rollout') {
when {
// todo rename to release
branch 'ozg-2502'
}
stage('Sonar Checks') {
steps {
script {
FAILED_STAGE = env.STAGE_NAME
def pom = readMavenPom file: 'pom.xml'
def version = pom.version
withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) {
sh 'git clone https://${USER}:${TOKEN}@git.ozg-sh.de/mgm/provisioning.git'
// todo remove
dir('provisioning') {
sh 'git checkout ozg-2502'
}
container("maven-17") {
configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
dir('user-manager-server') {
script {
try {
if (env.BRANCH_NAME == 'master') {
withSonarQubeEnv('sonarqube-ozg-sh'){
sh 'mvn -s $MAVEN_SETTINGS sonar:sonar'
}
}
} catch (Exception e) {
unstable("SonarQube failed")
}
}
}
setNewProvisioningVersion('test', version)
setNewProvisioningVersion('stage', version)
pushNewProvisioningVersion(USER, TOKEN, version)
}
}
}
......@@ -221,3 +253,33 @@ String getElementAccessToken() {
return readJSON ( text: sh (script: '''curl -XPOST -d \"$LOGIN_JSON\" https://matrix.ozg-sh.de/_matrix/client/v3/login''', returnStdout: true)).access_token
}
}
Void setNewProvisioningVersion(String environment, String version) {
dir("provisioning") {
def envFile = "playbook/inventory/versions/${environment}.yml"
def envVersions = readYaml file: envFile
envVersions.versions.user_manager.image.tag = version
writeYaml file: envFile, data: envVersions, overwrite: true
}
}
Void pushNewProvisioningVersion(String user, String token, String version) {
dir('provisioning') {
sh 'git add playbook/inventory/versions/.'
sh 'git config user.email "jenkins@ozg.de"'
sh 'git config user.name "jenkins"'
sh "git commit -m 'jenkins rollout user-manager test stage version ${version}'"
sh 'git push https://${USER}:${TOKEN}@git.ozg-sh.de/mgm/provisioning.git'
}
}
Void initK8s(){
container("k8s") {
configFileProvider([configFile(fileId: 'jenkins-kuby-kubeconfig', variable: 'KUBE_CONFIG')]) {
sh 'mkdir ~/.kube'
sh 'cp ${KUBE_CONFIG} ~/.kube/config'
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment