Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
V
vorgang-manager
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
OZG-Cloud
app
vorgang-manager
Commits
55ba38c0
Commit
55ba38c0
authored
2 years ago
by
OZGCloud
Browse files
Options
Downloads
Plain Diff
Merge remote-tracking branch 'origin/master' into OZG-2737_MigrationUserId
parents
31788199
a97be41f
No related branches found
No related tags found
Loading
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
Jenkinsfile
+114
-51
114 additions, 51 deletions
Jenkinsfile
with
114 additions
and
51 deletions
Jenkinsfile
+
114
−
51
View file @
55ba38c0
...
@@ -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 Pl
ut
o
'
)
{
stage
(
'
Trigger Dev rollo
ut'
)
{
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", \
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment