-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJenkinsfile
More file actions
105 lines (96 loc) · 5.09 KB
/
Jenkinsfile
File metadata and controls
105 lines (96 loc) · 5.09 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
node {
withCredentials([[$class: 'UsernamePasswordMultiBinding',
credentialsId: 'docker-hub',
usernameVariable: 'DOCKER_USER_ID',
passwordVariable: 'DOCKER_USER_PASSWORD']])
{
try{
// Checkout Git reporitory
stage('Checkout Git') {
checkout scm
echo 'Git Checkout Success!'
}
// Build reporitory using Maven tool
stage('Build eureka') {
def mvnHome = tool 'Maven'
sh "cd eureka && ${mvnHome}/bin/mvn -Dmaven.test.failure.ignore clean compile package"
}
stage('Build gateway') {
def mvnHome = tool 'Maven'
sh "cd gateway && ${mvnHome}/bin/mvn -Dmaven.test.failure.ignore clean compile package"
}
stage('Build member') {
def mvnHome = tool 'Maven'
sh "cd member && ${mvnHome}/bin/mvn -Dmaven.test.failure.ignore clean compile package"
}
stage('Build auction') {
def mvnHome = tool 'Maven'
sh "cd auction && ${mvnHome}/bin/mvn -Dmaven.test.failure.ignore clean compile package"
}
stage('Build search') {
def mvnHome = tool 'Maven'
sh "cd search && ${mvnHome}/bin/mvn -Dmaven.test.failure.ignore clean compile package"
}
// // Unit Test using Junit and archive results for analysis
// stage('Unit Test'){
// junit '**/target/surefire-reports/TEST-*.xml'
// }
stage('Build image') {
// when {
// branch 'main'
// }steps{
sh(script: 'docker build -t ${DOCKER_USER_ID}/eureka:${BUILD_NUMBER} eureka')
sh(script: 'docker build -t ${DOCKER_USER_ID}/gateway:${BUILD_NUMBER} gateway')
sh(script: 'docker build -t ${DOCKER_USER_ID}/member:${BUILD_NUMBER} member')
sh(script: 'docker build -t ${DOCKER_USER_ID}/auction:${BUILD_NUMBER} auction')
sh(script: 'docker build -t ${DOCKER_USER_ID}/search:${BUILD_NUMBER} search')
// }
}
stage('Push') {
// when {
// branch 'main'
// }steps{
sh(script: 'docker login -u ${DOCKER_USER_ID} -p ${DOCKER_USER_PASSWORD}')
sh(script: 'docker push ${DOCKER_USER_ID}/eureka:${BUILD_NUMBER}')
sh(script: 'docker push ${DOCKER_USER_ID}/gateway:${BUILD_NUMBER}')
sh(script: 'docker push ${DOCKER_USER_ID}/member:${BUILD_NUMBER}')
sh(script: 'docker push ${DOCKER_USER_ID}/auction:${BUILD_NUMBER}')
sh(script: 'docker push ${DOCKER_USER_ID}/search:${BUILD_NUMBER}')
// }
}
slackSend (channel: '#jenkins', color: '#00FF00', message: "SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
}catch(e){
slackSend (channel: '#jenkins', color: '#FF0000', message: "FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
}
// stage('Deploy') {
// // sh "docker stop eureka"
// // sh "docker rm eureka"
// // sh "docker stop gateway"
// // sh "docker rm gateway"
// // sh "docker stop member"
// // sh "docker rm member"
// // sh "docker stop auction"
// // sh "docker rm auction"
// // sh "docker stop search"
// // sh "docker rm search"
// sh "docker run -d -p 8761:8761 --network Dining-together\
// -e \"spring.cloud.config.uri=http://config:8888\" \
// --name eureka ${DOCKER_USER_ID}/eureka:${BUILD_NUMBER}"
// sh "docker run -d -p 8000:8000 --network Dining-together --name gateway -e \"eureka.client.serviceUrl.defaultZone=http://eureka:8761/eureka/\" -e \"spring.cloud.config.uri=http://config:8888\" -e \"spring.rabbitmq.host=rabbitmq\" ${DOCKER_USER_ID}/gateway:${BUILD_NUMBER}"
// sh "docker run -d --network Dining-together \
// --name member \
// -e \"spring.cloud.config.uri=http://config:8888\" \
// -e \"spring.rabbitmq.host=rabbitmq\" \
// -e \"eureka.client.serviceUrl.defaultZone=http://eureka:8761/eureka/\" \
// ${DOCKER_USER_ID}/member:${BUILD_NUMBER}"
// sh "docker run -d --network Dining-together \
// --name auction \
// -e \"eureka.client.serviceUrl.defaultZone=http://eureka:8761/eureka/\" \
// ${DOCKER_USER_ID}/auction:${BUILD_NUMBER}"
// sh "docker run -d --network Dining-together \
// --name search \
// -e \"eureka.client.serviceUrl.defaultZone=http://eureka:8761/eureka/\" \
// ${DOCKER_USER_ID}/search:${BUILD_NUMBER}"
// }
}
}