-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathJenkinsfile
More file actions
144 lines (142 loc) · 4.15 KB
/
Jenkinsfile
File metadata and controls
144 lines (142 loc) · 4.15 KB
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
pipeline {
agent any
// any, none, label, node, docker, dockerfile, kubernetes
tools {
maven 'my_maven'
// 플러그인 설치후 글로벌 설정에서 만든 빌드명.
}
environment {
<<<<<<< HEAD
gitName = 'wodb777'
gitEmail = 'wodb777@gmail.com'
githubCredential = 'git_cre'
dockerHubRegistry = 'wodb73/sbimage'
=======
gitName = 'pcmin929'
gitEmail = 'pcmin929@gmail.com'
githubCredential = 'git_cre'
dockerHubRegistry = 'oolralra/sbimage'
>>>>>>> upstream/main
dockerHubRegistryCredential = 'docker_cre'
}
stages {
stage('Checkout Github') {
steps {
<<<<<<< HEAD
checkout([$class: 'GitSCM', branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[credentialsId: githubCredential, url: 'https://github.com/aeokseung/sb_code.git']]])
=======
checkout([$class: 'GitSCM', branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[credentialsId: githubCredential, url: 'https://github.com/pcmin929/sb_code.git']]])
>>>>>>> upstream/main
}
post {
failure {
echo 'Repository clone failure'
}
success {
<<<<<<< HEAD
echo 'Repository clone success'
}
}
}
=======
echo 'Repository clone success'
}
}
}
>>>>>>> upstream/main
stage('Maven Build') {
steps {
sh 'mvn clean install'
// maven integration , maven invoker 플러그인이 설치되어있어야함.
}
post {
failure {
echo 'Maven jar build failure'
}
success {
<<<<<<< HEAD
echo 'Repository clone success'
=======
echo 'Repository clone success'
>>>>>>> upstream/main
}
}
}
stage('Docker Image Build') {
steps {
sh "docker build -t ${dockerHubRegistry}:${currentBuild.number} ."
sh "docker build -t ${dockerHubRegistry}:latest ."
// dockerHubRegistry 위에서 선언한 변수, 내 저장소.
// currentBuild.number 젠킨스가 제공하는 변수. 빌드넘버를 받아옴.
}
post {
failure {
echo 'Docker Image Build failure'
}
success {
<<<<<<< HEAD
echo 'Docker Image Build success'
=======
echo 'Docker Image Build success'
>>>>>>> upstream/main
}
}
}
stage('Docker Image Push') {
steps {
// 도커 허브의 크리덴셜
withDockerRegistry(credentialsId: dockerHubRegistryCredential, url: '') {
// withDockerRegistry : docker pipeline 플러그인 설치시 사용가능.
<<<<<<< HEAD
// dockerHubRegistryCredential : environment에서 선언한 docker_cre
sh "docker push ${dockerHubRegistry}:${currentBuild.number}"
sh "docker push ${dockerHubRegistry}:latest"
}
=======
// dockerHubRegistryCredential : environment에서 선언한 docker_cre
sh "docker push ${dockerHubRegistry}:${currentBuild.number}"
sh "docker push ${dockerHubRegistry}:latest"
}
>>>>>>> upstream/main
}
post {
failure {
echo 'Docker Image Push failure'
sh "docker rmi ${dockerHubRegistry}:${currentBuild.number}"
sh "docker rmi ${dockerHubRegistry}:latest"
}
success {
echo 'Docker Image Push success'
sh "docker rmi ${dockerHubRegistry}:${currentBuild.number}"
sh "docker rmi ${dockerHubRegistry}:latest"
slackSend (color: '#0AC9FF', message: "SUCCESS: Docker Image Push '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
}
}
}
stage('Docker Container Deploy') {
steps {
sh "docker rm -f spring"
sh "docker run -dp 7979:8085 --name spring ${dockerHubRegistry}:${currentBuild.number}"
<<<<<<< HEAD
}
=======
}
>>>>>>> upstream/main
post {
failure {
echo 'Container Deploy failure'
}
success {
<<<<<<< HEAD
echo 'Container Deploy success'
}
}
}
=======
echo 'Container Deploy success'
}
}
}
>>>>>>> upstream/main
}
}