-
Notifications
You must be signed in to change notification settings - Fork 0
/
Jenkinsfile.groovy
114 lines (101 loc) · 3.54 KB
/
Jenkinsfile.groovy
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
String gitlabSecretToken = '0fd20264243d503b63538824f164b1e0'
pipeline {
agent {
label 'AwsJenkinsSlave'
}
options {
buildDiscarder(logRotator(numToKeepStr: '10'))
disableConcurrentBuilds()
skipStagesAfterUnstable()
}
triggers {
gitlab(triggerOnPush: false,
triggerOnMergeRequest: false,
triggerOnAcceptedMergeRequest: true,
branchFilterType: 'All',
pendingBuildName: env.JOB_NAME,
cancelPendingBuildsOnUpdate: true,
secretToken: gitlabSecretToken
)
}
environment {
projectName = 'HotelServiceApp'
urlPrefix = 'https://github.com/rupeshnemade'
projectUrl = "${urlPrefix}/api-service.git"
apiService_ECR_URL = "960885402552.dkr.ecr.us-east-1.amazonaws.com/hotel/apiervice"
workerService_ECR_URL = "960885402552.dkr.ecr.us-east-1.amazonaws.com/hotel/workerservice"
REGION = "us-east-1"
}
stages {
stage('Checkout') {
steps {
git(
url: projectUrl,
credentialsId: "git_credentials",
branch: 'master'
)
updateGitlabCommitStatus(name: env.JOB_NAME, state: 'running')
}
post {
failure {
cleanWs()
}
}
}
stage('API service Docker Build') {
steps {
dir('api') {
sh """docker build -t api-service ."""
echo "API service image build successfully"
}
}
}
stage('Worker service Docker Build') {
steps {
dir('worker') {
sh """docker build -t worker-service ."""
echo "Worker service image build successfully"
}
}
}
stage('ECR push') {
steps {
script {
echo "Login to ECR"
sh '$(/usr/local/bin/aws ecr get-login --no-include-email --region $REGION)'
echo "Tag the build and push to ECR"
sh 'docker tag api-service $apiService_ECR_URL:latest'
sh 'docker push $apiService_ECR_URL:latest'
sh 'docker tag worker-service $workerService_ECR_URL:latest'
sh 'docker push $workerService_ECR_URL:latest'
echo "Docker images successfully pushed to ECR"
echo "Deleting docker image from workspace"
sh 'docker rmi $apiService_ECR_URL:latest'
sh 'docker rmi $workerService_ECR_URL:latest'
}
}
}
stage('Deploy-AWS') {
steps {
build job: '../AWS-Deploy/HotelService_Deploy_Dev'
}
post {
always {
cleanWs()
echo "Send notifications for result: ${currentBuild.currentResult}"
}
}
}
}
post {
success {
updateGitlabCommitStatus(name: env.JOB_NAME, state: 'success')
}
failure {
updateGitlabCommitStatus(name: env.JOB_NAME, state: 'failed')
}
unstable {
updateGitlabCommitStatus(name: env.JOB_NAME, state: 'failed')
}
}
}