forked from javahometech/my-app
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathjenkinsfile_k8s
108 lines (98 loc) · 3.42 KB
/
jenkinsfile_k8s
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
105
106
107
node{
notifyStarted()
stage("SCM Checkout"){
git credentialsId: 'gitcreds', url: 'https://github.com/Devendranathashok/my-app.git'
}
try {
stage('Maven Build'){
def mvnHome = tool name: 'maven3', type: 'maven'
sh "${mvnHome}/bin/mvn clean package"
sh 'mv target/myweb*.war target/myweb.war'
}
notifySuccessful()
} catch (e) {
currentBuild.result = "FAILED"
notifyFailed()
throw e
}
stage('SonarQube Analysis') {
def mvnHome = tool name: 'maven3', type: 'maven'
withSonarQubeEnv('sonar-6.5') {
sh "${mvnHome}/bin/mvn sonar:sonar"
}
}
stage('Docker build')
{
sh 'docker build -t 192.168.58.135:8083/myweb:1.0.0 .'
}
stage('Docker push')
{
sh "docker login http://192.168.58.135:8083 -u admin -p admin123"
sh "docker push 192.168.58.135:8083/myweb:1.0.0"
}
try{
deploymentStarted()
stage('Deploy to Kubernetes'){
sshagent(['kubernetescreds']) {
sh "scp -o StrictHostKeyChecking=no deployment.yaml [email protected]:/home/vagrant/"
try{
sh "ssh [email protected] kubectl create -f /home/vagrant/deployment.yaml"
}catch(ex){
sh "ssh [email protected] kubectl apply -f /home/vagrant/deployment.yaml"
}
deploymentSuccessful()
}
}
}catch (e) {
currentBuild.result = "FAILED"
deploymentFailed()
throw e
}
}
def notifyStarted() { emailext (
body: """
STARTED: Job \'${env.JOB_NAME} [${env.BUILD_NUMBER}]\':
Check console output at "${env.JOB_NAME} [${env.BUILD_NUMBER}]"
""", recipientProviders: [developers()], subject: 'subject: "STARTED: Job \'${env.JOB_NAME} [${env.BUILD_NUMBER}]\'",',
to: '[email protected]' )}
def notifySuccessful() {
emailext(
body: """
SUCCESSFUL: Job \'${env.JOB_NAME} [${env.BUILD_NUMBER}]\':
Check console output at "${env.JOB_NAME} [${env.BUILD_NUMBER}]"
""", recipientProviders: [developers()], subject: '"SUCCESSFUL: Job \'${env.JOB_NAME} [${env.BUILD_NUMBER}]\'"',
to: '[email protected]')
}
def notifyFailed() {
emailext (
body: """
FAILED: Job \'${env.JOB_NAME} [${env.BUILD_NUMBER}]\':
Check console output at "${env.JOB_NAME} [${env.BUILD_NUMBER}]"
""",, recipientProviders: [developers()], subject: '"FAILED: Job \'${env.JOB_NAME} [${env.BUILD_NUMBER}]\'",',
to: '[email protected]')
}
def deploymentStarted() { emailext (
body: """
STARTED: Job \'${env.JOB_NAME} [${env.BUILD_NUMBER}]\':
Check console output at "${env.JOB_NAME} [${env.BUILD_NUMBER}]"
Deployment has been started on kubernetes
""", recipientProviders: [developers()], subject: 'subject: "STARTED: Job \'${env.JOB_NAME} [${env.BUILD_NUMBER}]\'",',
to: '[email protected]' )}
def deploymentSuccessful() {
emailext(
body: """
SUCCESSFUL: Job \'${env.JOB_NAME} [${env.BUILD_NUMBER}]\':
Check console output at "${env.JOB_NAME} [${env.BUILD_NUMBER}]"
Deployment has been successfully completed
""", recipientProviders: [developers()], subject: '"SUCCESSFUL: Job \'${env.JOB_NAME} [${env.BUILD_NUMBER}]\'"',
to: '[email protected]')
}
def deploymentFailed() {
emailext (
body: """
FAILED: Job \'${env.JOB_NAME} [${env.BUILD_NUMBER}]\':
Check console output at "${env.JOB_NAME} [${env.BUILD_NUMBER}]"
Deployment has been failed
""",, recipientProviders: [developers()], subject: '"FAILED: Job \'${env.JOB_NAME} [${env.BUILD_NUMBER}]\'",',
to: '[email protected]')
}