-
Notifications
You must be signed in to change notification settings - Fork 0
/
Jenkinsfile
104 lines (103 loc) · 5.2 KB
/
Jenkinsfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
pipeline {
agent any
tools {
jdk 'jdk-17'
}
options {
buildDiscarder(logRotator(numToKeepStr: '5'))
}
environment {
DOCKERHUB_CREDENTIALS = credentials('dockerhub')
}
stages {
stage('Login & Configuration') {
steps {
sh 'echo $DOCKERHUB_CREDENTIALS_PSW | docker login -u $DOCKERHUB_CREDENTIALS_USR --password-stdin'
sh 'curl -LO "https://storage.googleapis.com/kubernetes-release/release/v1.20.5/bin/linux/amd64/kubectl"'
sh 'chmod u+x ./kubectl'
}
}
stage('Check Pipelines') {
steps {
script {
def changedFiles = sh(script: 'git diff --name-only HEAD~1', returnStdout: true).trim().split('\n')
withKubeConfig([credentialsId: 'kubeconfig', serverUrl: 'https://192.168.219.108:6443']) {
if (changedFiles.any { it.startsWith("campaign") }) {
dir('campaign') {
try {
withGradle {
sh './gradlew clean'
sh './gradlew jib'
sh '../kubectl apply -f k8s.yaml'
sh "../kubectl rollout restart deployment/tg-campaign -n campaign"
}
slackSend message: "Campaign Service Deployed - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)"
}
catch (err) {
slackSend message: "Campaign Service Failed - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)"
}
}
}
if (changedFiles.any { it.startsWith("community") }) {
dir('community') {
try {
withGradle {
sh './gradlew clean'
sh './gradlew jib'
sh '../kubectl apply -f k8s.yaml'
sh "../kubectl rollout restart deployment/tg-community -n community"
}
slackSend message: "Community Service Deployed - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)"
}
catch (err) {
slackSend message: "Community Service Failed - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)"
}
}
}
if (changedFiles.any { it.startsWith("user") }) {
dir('user') {
try {
withGradle {
sh './gradlew clean'
sh './gradlew jib'
sh '../kubectl apply -f k8s.yaml'
sh "../kubectl rollout restart deployment/tg-user -n user"
}
slackSend message: "User Service Deployed - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)"
}
catch (err) {
slackSend message: "User Service Failed - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)"
}
}
}
if (changedFiles.any { it.startsWith("mailing") }) {
dir('mailing') {
try {
sh 'docker build -t dopeteam/tg-mailing:latest .'
sh 'docker push dopeteam/tg-mailing:latest'
sh '../kubectl apply -f k8s.yaml'
sh "../kubectl rollout restart deployment/tg-mailing -n mailing"
slackSend message: "Mailing Service Deployed - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)"
}
catch (err) {
slackSend message: "Mailing Service Failed - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)"
}
}
}
}
}
}
}
}
post {
always {
sh 'docker logout'
}
success {
slackSend message: "MSA Pipeline Finished - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)"
}
failure {
slackSend message: "MSA Pipeline Crashed - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)"
}
}
}