1
- #! /bin/bash
2
- #
3
- # indentify the environment & server
4
- #
5
- #
6
- # don't deploy for new PR
7
- #
8
- if [ ${TRAVIS_PULL_REQUEST} != " false" ]; then echo " Not deploying on a pull request !!!" && exit 0; fi
9
-
10
- PACKAGE_VERSION=` jq ' .version' version.json | tr -d ' "' `
11
- DJANGO_IMAGE_NAME=` echo " ${BUILD_REPO_NAME} _${TRAVIS_BRANCH} _${DJANGO_CONTAINER_SERVICE_NAME} " | tr ' [:upper:]' ' [:lower:]' `
12
- DEPLOYMENT_IS_RUNNING=` echo " ${BUILD_REPO_NAME} _${TRAVIS_BRANCH} " | tr ' [:upper:]' ' [:lower:]' `
13
-
14
- export BASE_DOMAIN=" froala-infra.com"
15
- export SDK_ENVIRONMENT=" "
16
- export DEPLOYMENT_SERVER=" "
17
- SERVICE_NAME=" "
18
- CONTAINAER_NAME=" "
1
+ #! /usr/bin/env bash
2
+
3
+ # Steps
4
+ # Identify the build agent. Check whether build agent is same as deployment server
5
+ # Login to build server and build, run, check the new changes.
6
+ # --force-recreate for docker-compose
7
+ # --no-cache for docker build
8
+ # -f for npm install
9
+ # -v --rmi all for docker compose down
10
+
11
+ if [ " ${TRAVIS_PULL_REQUEST} " != " false" ]; then echo " Not deploying on a pull request !!!" && exit 0; fi
12
+
13
+ # Define the global variables
14
+ BRANCH_NAME=$( echo " ${TRAVIS_BRANCH} " | tr ' [:upper:]' ' [:lower:]' )
15
+ PACKAGE_VERSION=" $( jq ' .version' version.json | tr -d ' "' ) "
16
+ IMAGE_NAME=" $( echo " froala-${BUILD_REPO_NAME} _${TRAVIS_BRANCH} :${PACKAGE_VERSION} " | tr ' [:upper:]' ' [:lower:]' ) "
17
+ BASE_DOMAIN=" froala-infra.com"
18
+ AO_IDENTIFIER=" ${TRAVIS_BRANCH} "
19
+ BRANCH_LENGHT=$( echo " ${TRAVIS_BRANCH} " | awk ' {print length}' )
20
+ LW_REPO_NAME=$( echo " ${BUILD_REPO_NAME} " | tr ' [:upper:]' ' [:lower:]' | sed -e ' s/-//g' -e ' s/\.//g' -e ' s/_//g' )
19
21
CT_INDEX=0
22
+ MAX_DEPLOYMENTS_NR=0
23
+ SDK_ENVIRONMENT=" "
24
+ DEPLOYMENT_SERVER=" "
25
+ SERVICE_NAME=" "
26
+ CONTAINER_NAME=" "
27
+ OLDEST_CONTAINER=" "
20
28
21
- OLDEST_DJANGO_CONTAINER=" "
22
-
29
+ # Copy the ssh key
23
30
echo " ${SSH_KEY} " | base64 --decode > /tmp/sshkey.pem
24
31
chmod 400 /tmp/sshkey.pem
25
32
26
- export MAX_DEPLOYMENTS_NR=0
27
- function get_max_deployments_per_env(){
28
-
29
- local ENVIRONMENT=$1
30
- echo " getting max deployments for environment ${ENVIRONMENT} "
31
- MAX_DEPLOYMENTS_NR=` jq --arg sdkenvironment ${ENVIRONMENT} ' .[$sdkenvironment]' version.json | tr -d ' "' `
32
- echo " detected max deployments: ${MAX_DEPLOYMENTS_NR} "
33
-
34
- }
35
-
36
-
37
- function generate_container_name(){
38
- local LW_REPO_NAME=$1
39
- local LW_SHORT_TRAVIS_BRANCH=$2
40
- local SDK_ENVIRONMENT=$3
41
- local DEPLOYMENT_SERVER=$4
42
-
43
- echo " searching for ${LW_REPO_NAME} depl..."
44
- sleep 1
45
-
46
- RUNNING_DEPL=` ssh -o " StrictHostKeyChecking no" -i /tmp/sshkey.pem ${SSH_USER} @${DEPLOYMENT_SERVER} " sudo docker ps | grep -i ${LW_REPO_NAME} " `
47
-
48
- echo " running depl var: ${RUNNING_DEPL} "
49
- echo " looking for ${LW_REPO_NAME} deployments"
50
-
51
- echo " getting indexes for oldest and latest deployed container"
52
- DEPL=' ssh -o "StrictHostKeyChecking no" -i /tmp/sshkey.pem '
53
- DEPL=" ${DEPL} ${SSH_USER} @${DEPLOYMENT_SERVER} "
54
- REL=' " sudo docker ps | grep -i '
55
- DEPL=" ${DEPL} ${REL} "
56
- DEPL=" ${DEPL} ${LW_REPO_NAME} "
57
- REL=' "'
58
- DEPL=" ${DEPL} ${REL} "
59
-
60
- echo " show docker containers ssh cmd: $DEPL "
61
- echo ${DEPL} | bash > file.txt
62
- echo " running conatiners: "
63
- cat file.txt
64
- CT_LOWER_INDEX=` cat file.txt | awk -F' -' ' {print $NF }' | sort -nk1 | head -1`
65
- CT_HIGHER_INDEX=` cat file.txt | awk -F' -' ' {print $NF }' | sort -nk1 | tail -1`
66
-
67
- echo " lowest index : ${CT_LOWER_INDEX} ; and highest index : ${CT_HIGHER_INDEX} "
68
-
69
- if [ -z " ${RUNNING_DEPL} " ]; then
70
- echo " first deployment"
71
- CT_INDEX=1
72
- else
73
- echo " multiple deployments"
74
- CT_INDEX=${CT_HIGHER_INDEX} && CT_INDEX=$(( CT_INDEX+ 1 ))
75
- OLDEST_DJANGO_CONTAINER=" ${LW_REPO_NAME} -${DJANGO_CONTAINER_SERVICE_NAME} -${CT_LOWER_INDEX} "
76
- echo " new index: ${CT_INDEX} & oldest horse out there: ${OLDEST_DJANGO_CONTAINER} "
77
- fi
78
-
79
- }
80
-
81
- echo " Container port: ${CONTAINER_SERVICE_PORTNO} "
82
-
83
- export BRANCH_NAME=` echo " ${TRAVIS_BRANCH} " | tr ' [:upper:]' ' [:lower:]' `
84
-
33
+ # Select the deployment server based on the branch.
85
34
case " ${BRANCH_NAME} " in
86
- dev* ) SDK_ENVIRONMENT=" dev" && DEPLOYMENT_SERVER=${FROALA_SRV_DEV} ;;
87
- ao-dev* ) SDK_ENVIRONMENT=" dev" && DEPLOYMENT_SERVER=${FROALA_SRV_DEV} ;;
88
- qa* ) SDK_ENVIRONMENT=" qa" && DEPLOYMENT_SERVER=${FROALA_SRV_QA} ;;
89
- qe* ) SDK_ENVIRONMENT=" qe" && DEPLOYMENT_SERVER=${FROALA_SRV_QE} ;;
90
- rc* ) SDK_ENVIRONMENT=" stg" && DEPLOYMENT_SERVER=${FROALA_SRV_STAGING} ;;
91
- release-master* ) SDK_ENVIRONMENT=" stg" && DEPLOYMENT_SERVER=${FROALA_SRV_STAGING} ;;
92
- ft* ) echo " Building only on feature branch ${TRAVIS_BRANCH} ... will not deploy..." && exit 0;;
93
- bf* ) echo " Building only on bugfix branch ${TRAVIS_BRANCH} ... will not deploy..." && exit 0;;
94
- * ) echo " Not a deployment branch" && exit - 1;;
35
+ dev* ) SDK_ENVIRONMENT=" dev" && DEPLOYMENT_SERVER=" ${FROALA_SRV_DEV} " ;;
36
+ ao-dev* ) SDK_ENVIRONMENT=" dev" && DEPLOYMENT_SERVER=" ${FROALA_SRV_DEV} " ;;
37
+ qa* ) SDK_ENVIRONMENT=" qa" && DEPLOYMENT_SERVER=" ${FROALA_SRV_QA} " ;;
38
+ qe* ) SDK_ENVIRONMENT=" qe" && DEPLOYMENT_SERVER=" ${FROALA_SRV_QE} " ;;
39
+ rc* ) SDK_ENVIRONMENT=" stg" && DEPLOYMENT_SERVER=" ${FROALA_SRV_STAGING} " ;;
40
+ release-master* ) SDK_ENVIRONMENT=" stg" && DEPLOYMENT_SERVER=${FROALA_SRV_STAGING} ;;
41
+ ft* ) echo " Building only on feature branch ${TRAVIS_BRANCH} ... will not deploy..." && exit 0;;
42
+ bf* ) echo " Building only on bugfix branch ${TRAVIS_BRANCH} ... will not deploy..." && exit 0;;
43
+ * ) echo " Not a deployment branch" && exit 1;;
95
44
esac
96
45
97
- get_max_deployments_per_env $SDK_ENVIRONMENT
98
-
99
- echo " deploying on environment :${SDK_ENVIRONMENT} , on server ${DEPLOYMENT_SERVER} , max deployments: ${MAX_DEPLOYMENTS_NR} "
100
-
101
- export BASE_DOMAIN=" froala-infra.com"
102
- SHORT_REPO_NAME=" ${BUILD_REPO_NAME: 0: 17} "
103
- BRANCH_LENGHT=` echo ${TRAVIS_BRANCH} | awk ' {print length}' `
104
- if [ ${BRANCH_LENGHT} -lt 18 ]; then
105
- SHORT_TRAVIS_BRANCH=${TRAVIS_BRANCH}
46
+ # Set the short branch name
47
+ if [ " ${BRANCH_LENGHT} " -lt 18 ]; then
48
+ SHORT_TRAVIS_BRANCH=" ${TRAVIS_BRANCH} "
106
49
else
107
- SHORT_TRAVIS_BRANCH=" ${TRAVIS_BRANCH: 0: 8}${TRAVIS_BRANCH: -8} "
50
+ SHORT_TRAVIS_BRANCH=" ${TRAVIS_BRANCH: 0: 8}${TRAVIS_BRANCH: -8} "
108
51
fi
52
+ LW_SHORT_TRAVIS_BRANCH=" $( echo " ${SHORT_TRAVIS_BRANCH} " | sed -e ' s/-//g' -e ' s/\.//g' -e ' s/_//g' | tr ' [:upper:]' ' [:lower:]' ) "
109
53
110
- echo " short branch name : ${SHORT_TRAVIS_BRANCH} "
111
- SHORT_TRAVIS_BRANCH=` echo ${SHORT_TRAVIS_BRANCH} | sed -r ' s/-//g' `
112
- SHORT_TRAVIS_BRANCH=` echo ${SHORT_TRAVIS_BRANCH} | sed -r ' s/\.//g' `
113
- SHORT_TRAVIS_BRANCH=` echo ${SHORT_TRAVIS_BRANCH} | sed -r ' s/_//g' `
114
- echo " short branch name : ${SHORT_TRAVIS_BRANCH} "
115
- DJANGO_DEPLOYMENT_URL=" ${DJANGO_CONTAINER_SERVICE_NAME} -${SHORT_REPO_NAME} -${SHORT_TRAVIS_BRANCH} .${SDK_ENVIRONMENT} .${BASE_DOMAIN} "
116
- echo " deployment URL: https://${DJANGO_DEPLOYMENT_URL} "
117
-
118
- cp docker-compose.yml.template docker-compose.yml
119
- LW_REPO_NAME=` echo " ${BUILD_REPO_NAME} " | tr ' [:upper:]' ' [:lower:]' `
120
- LW_REPO_NAME=` echo ${LW_REPO_NAME} | sed -r ' s/_//g' `
121
- LW_REPO_NAME=` echo ${LW_REPO_NAME} | sed -r ' s/-//g' `
122
- LW_REPO_NAME=` echo ${LW_REPO_NAME} | sed -r ' s/\.//g' `
123
- LW_SHORT_TRAVIS_BRANCH=` echo " ${SHORT_TRAVIS_BRANCH} " | tr ' [:upper:]' ' [:lower:]' `
124
-
125
- SERVICE_NAME=" ${LW_REPO_NAME} -${LW_SHORT_TRAVIS_BRANCH} "
126
-
127
- generate_container_name ${LW_REPO_NAME} ${LW_SHORT_TRAVIS_BRANCH} ${DEPLOYMENT_SERVER} ${DEPLOYMENT_SERVER}
128
-
129
- DJANGO_CONTAINER_NAME=" ${LW_REPO_NAME} -${DJANGO_CONTAINER_SERVICE_NAME} -${CT_INDEX} "
130
- djangourl=${DJANGO_DEPLOYMENT_URL}
131
- djangoservice=" ${DJANGO_CONTAINER_SERVICE_NAME} -${CT_INDEX} "
132
- djangoportnum=" ${DJANGO_CONTAINER_SERVICE_PORTNO} "
133
- djangoimagename=" froala-${DJANGO_IMAGE_NAME} :${PACKAGE_VERSION} "
134
-
135
- echo " Django Image Name:${djangoimagename} Url: ${djangourl} "
136
-
137
- sed -i " s/DjangoImageName/${NEXUS_CR_TOOLS_URL} \\ /${djangoimagename} /g" docker-compose.yml
138
- sed -i " s/DjangoUrlName/${djangourl} /g" docker-compose.yml
139
- sed -i " s/DjangoServiceName/${djangoservice} /g" docker-compose.yml
140
- sed -i " s/DjangoPortNum/${djangoportnum} /g" docker-compose.yml
141
- sed -i " s/DjangoContainerName/${DJANGO_CONTAINER_NAME} /g" docker-compose.yml
142
- echo " Docker-compose file: "
143
- cat docker-compose.yml
144
-
145
- LW_REPO_NAME_LENGTH=` echo ${LW_REPO_NAME} | awk ' {print length}' `
146
- SHORT_SERVICE_NAME=" ${SERVICE_NAME: 0: $LW_REPO_NAME_LENGTH } "
147
- echo " short service name: ${SHORT_SERVICE_NAME} "
148
-
149
-
150
-
151
- function deploy_service(){
54
+ # Get the maximum allowed deployment for given environment
55
+ function max_allowed_deployment(){
56
+ echo " getting max deployments for environment ${SDK_ENVIRONMENT} "
57
+ MAX_DEPLOYMENTS_NR=$( jq --arg sdkenvironment " ${SDK_ENVIRONMENT} " ' .[$sdkenvironment]' version.json | tr -d ' "' )
58
+ echo " Max allowed deployments: ${MAX_DEPLOYMENTS_NR} "
59
+ }
60
+ max_allowed_deployment
152
61
153
- ssh -o " StrictHostKeyChecking no" -i /tmp/sshkey.pem ${SSH_USER} @${DEPLOYMENT_SERVER} " if [ -d /services/${SERVICE_NAME} ]; then sudo docker-compose -f /services/${SERVICE_NAME} /docker-compose.yml down; fi"
154
- ssh -o " StrictHostKeyChecking no" -i /tmp/sshkey.pem ${SSH_USER} @${DEPLOYMENT_SERVER} " if [ -d /services/${SERVICE_NAME} ]; then rm -rf /services/${SERVICE_NAME} ; fi && mkdir /services/${SERVICE_NAME} "
155
- scp -o " StrictHostKeyChecking no" -i /tmp/sshkey.pem docker-compose.yml ${SSH_USER} @${DEPLOYMENT_SERVER} :/services/${SERVICE_NAME} /docker-compose.yml
156
- ssh -o " StrictHostKeyChecking no" -i /tmp/sshkey.pem ${SSH_USER} @${DEPLOYMENT_SERVER} " cd /services/${SERVICE_NAME} / && sudo docker-compose pull"
157
- ssh -o " StrictHostKeyChecking no" -i /tmp/sshkey.pem ${SSH_USER} @${DEPLOYMENT_SERVER} " cd /services/${SERVICE_NAME} / && sudo docker-compose up -d"
158
- sleep 10 && ssh -o " StrictHostKeyChecking no" -i /tmp/sshkey.pem ${SSH_USER} @${DEPLOYMENT_SERVER} " sudo docker ps -a | grep -i ${SERVICE_NAME} "
62
+ # Get the total numbers of deployed container for given environment
63
+ function existing_deployments(){
64
+ echo " Checking the existing number of running container(s)"
65
+ EXISTING_DEPLOYMENTS_NR=$( ssh -o " StrictHostKeyChecking no" -i /tmp/sshkey.pem " ${SSH_USER} " @" ${DEPLOYMENT_SERVER} " " sudo docker ps | grep -i ${LW_REPO_NAME} -${AO_IDENTIFIER} " | wc -l)
66
+ echo " Number of existing deployment: ${EXISTING_DEPLOYMENTS_NR} "
67
+ }
68
+ existing_deployments
159
69
160
- echo " Docker-compose is in : /services/${SERVICE_NAME} "
70
+ # Get the old container name, no of deployments, and generate the new index and container name
71
+ function generate_container_name(){
161
72
162
- sleep 30
163
- RET_CODE=` curl -k -s -o /tmp/notimportant.txt -w " %{http_code}" https://${DJANGO_DEPLOYMENT_URL} `
164
- echo " validation code: $RET_CODE for https://${DJANGO_DEPLOYMENT_URL} "
165
- if [ $RET_CODE -ne 200 ]; then
166
- echo " Deployment validation failed for django SDK!!! Please check pipeline logs."
167
- exit -1
168
- else
169
- echo " Django Service available at URL: https://${DJANGO_DEPLOYMENT_URL} "
73
+ DEPL=$( ssh -o " StrictHostKeyChecking no" -i /tmp/sshkey.pem " ${SSH_USER} " @" ${DEPLOYMENT_SERVER} " sudo docker ps | grep -i " ${LW_REPO_NAME} " -" ${AO_IDENTIFIER} " )
74
+ echo " Containers running for ${AO_IDENTIFIER} : ${DEPL} "
75
+ echo " ${DEPL} " > file.txt
76
+
77
+ echo " Getting indexes of oldest and latest deployed containers for ${AO_IDENTIFIER} "
78
+ CT_LOWER_INDEX=$( awk -F' -' ' {print $NF }' < file.txt | sort -nk1 | head -1)
79
+ CT_HIGHER_INDEX=$( awk -F' -' ' {print $NF }' < file.txt | sort -nk1 | tail -1)
80
+ echo " Lowest index : ${CT_LOWER_INDEX} ; and Highest index : ${CT_HIGHER_INDEX} "
81
+
82
+ if [ -z " ${DEPL} " ]; then
83
+ echo " First deployment. Setting the container name."
84
+ CT_INDEX=1
85
+ CONTAINER_NAME=" ${LW_REPO_NAME} -${AO_IDENTIFIER} -${CT_INDEX} "
86
+ SERVICE_NAME=" ${LW_REPO_NAME} -${LW_SHORT_TRAVIS_BRANCH} "
87
+ else
88
+ echo " Multiple deployments detected. Setting the container name (old and new)"
89
+ CT_INDEX=${CT_HIGHER_INDEX} && CT_INDEX=$(( CT_INDEX+ 1 ))
90
+ OLDEST_CONTAINER=" ${LW_REPO_NAME} -${AO_IDENTIFIER} -${CT_LOWER_INDEX} "
91
+ CONTAINER_NAME=" ${LW_REPO_NAME} -${AO_IDENTIFIER} -${CT_INDEX} "
92
+ SERVICE_NAME=" ${LW_REPO_NAME} -${LW_SHORT_TRAVIS_BRANCH} -${CT_INDEX} "
93
+ echo " New index: ${CT_INDEX} "
94
+ fi
95
+ }
96
+ generate_container_name
97
+
98
+ # Print useful details.
99
+ echo -e " \n"
100
+ echo " ----------------------------------------------------------------------"
101
+ echo " Selected environment: ${SDK_ENVIRONMENT} . "
102
+ echo " Deployment server: ${DEPLOYMENT_SERVER} . "
103
+ echo " Max allowed deployments: ${MAX_DEPLOYMENTS_NR} . "
104
+ echo " Number of existing deployment: ${EXISTING_DEPLOYMENTS_NR} "
105
+ echo " Oldest container name: ${OLDEST_CONTAINER} "
106
+ echo " Container name for this deployment: ${CONTAINER_NAME} "
107
+ echo " ----------------------------------------------------------------------"
108
+ echo -e " \n"
109
+
110
+ # Set the deployment URL
111
+ DEPLOYMENT_URL=" ${CONTAINER_NAME} .${SDK_ENVIRONMENT} .${BASE_DOMAIN} "
112
+
113
+ # Modify the compose file and run the docker-compose.
114
+ function deploy(){
115
+
116
+ # Copy the docker-compose template to docker-compose.yml
117
+ cp docker-compose.yml.template docker-compose.yml
118
+
119
+ # Replace the sample values
120
+ sed -i " s/ImageName/${NEXUS_CR_TOOLS_URL} \/${IMAGE_NAME} /g" docker-compose.yml
121
+ sed -i " s/UrlName/${DEPLOYMENT_URL} /g" docker-compose.yml
122
+ sed -i " s/ServiceName/${SERVICE_NAME} /g" docker-compose.yml
123
+ sed -i " s/PortNum/${CONTAINER_SERVICE_PORTNO} /g" docker-compose.yml
124
+ sed -i " s/ContainerName/${CONTAINER_NAME} /g" docker-compose.yml
125
+
126
+ echo -e " \n"
127
+ echo " Below is the content of docker-compose.yml"
128
+ echo " -------------------------------------------------"
129
+ cat docker-compose.yml
130
+ echo " -------------------------------------------------"
131
+ echo -e " \n"
132
+
133
+ # Remove the old docker-compose from deployment_server
134
+ ssh -o " StrictHostKeyChecking no" -i /tmp/sshkey.pem " ${SSH_USER} " @" ${DEPLOYMENT_SERVER} " " if [ -d /services/${SERVICE_NAME} ]; then rm -rf /services/${SERVICE_NAME} ; fi && mkdir /services/${SERVICE_NAME} "
135
+
136
+ # Copy the latest docker-compose file to deployment_server
137
+ scp -o " StrictHostKeyChecking no" -i /tmp/sshkey.pem docker-compose.yml " ${SSH_USER} " @" ${DEPLOYMENT_SERVER} " :/services/" ${SERVICE_NAME} " /docker-compose.yml
138
+
139
+ # Run docker-compose pull on deployment_server
140
+ ssh -o " StrictHostKeyChecking no" -i /tmp/sshkey.pem " ${SSH_USER} " @" ${DEPLOYMENT_SERVER} " " cd /services/${SERVICE_NAME} / && sudo docker-compose pull"
141
+ sleep 10
142
+
143
+ # Run docker-compose up on deployment_server
144
+ ssh -o " StrictHostKeyChecking no" -i /tmp/sshkey.pem " ${SSH_USER} " @" ${DEPLOYMENT_SERVER} " " cd /services/${SERVICE_NAME} / && sudo docker-compose up -d --force-recreate"
145
+ sleep 370
146
+
147
+ RET_CODE=$( curl -k -s -o /tmp/notimportant.txt -w " %{http_code}" https://" ${DEPLOYMENT_URL} " )
148
+ echo " validation code: $RET_CODE for https://${DEPLOYMENT_URL} "
149
+ if [ " ${RET_CODE} " -ne 200 ]; then
150
+ echo " Deployment validation failed!!! Please check pipeline logs."
151
+ exit 1
152
+ else
153
+ echo -e " \n\tService available at URL: https://${DEPLOYMENT_URL} "
154
+ fi
155
+ }
170
156
157
+ # If existing deployment less than max deployment then just deploy don't remove old container.
158
+ if [ " ${EXISTING_DEPLOYMENTS_NR} " -lt " ${MAX_DEPLOYMENTS_NR} " ]; then
159
+ deploy
171
160
fi
172
161
173
162
174
- }
175
-
176
- REDEPLOYMENT=` ssh -o " StrictHostKeyChecking no" -i /tmp/sshkey.pem ${SSH_USER} @${DEPLOYMENT_SERVER} " sudo docker ps -a | grep -i " ${DEPLOYMENT_IS_RUNNING} " | wc -l" `
177
- echo " ${DEPLOYMENT_IS_RUNNING} "
178
- echo " checking if this PRD exists & do redeploy: ${REDEPLOYMENT} "
179
- if [ ${REDEPLOYMENT} -eq 2 ]; then
180
- echo " Redeploying service: ${SERVICE_NAME} ..."
181
- deploy_service
163
+ # If existing deployment equals max deployment then delete oldest container.
164
+ if [ " ${EXISTING_DEPLOYMENTS_NR} " -ge " ${MAX_DEPLOYMENTS_NR} " ]; then
165
+
166
+ echo " Maximum deployments reached on ${SDK_ENVIRONMENT} environment for ${BUILD_REPO_NAME} ."
167
+ echo " Stopping container ${OLDEST_CONTAINER} ..."
168
+
169
+ if ! ssh -o " StrictHostKeyChecking no" -i /tmp/sshkey.pem " ${SSH_USER} " @" ${DEPLOYMENT_SERVER} " sudo docker stop " ${OLDEST_CONTAINER} " ; then
170
+ echo " Failed to stop the ${OLDEST_CONTAINER} container"
171
+ fi
172
+ echo " Successfully stopped the ${OLDEST_CONTAINER} container."
173
+
174
+ if ! ssh -o " StrictHostKeyChecking no" -i /tmp/sshkey.pem " ${SSH_USER} " @" ${DEPLOYMENT_SERVER} " sudo docker rm -f " ${OLDEST_CONTAINER} " ; then
175
+ echo " Failed to remove the ${OLDEST_CONTAINER} container"
176
+ fi
177
+ echo " Successfully removed the ${OLDEST_CONTAINER} container."
178
+
179
+ echo " Deploying the service: ${SERVICE_NAME} "
180
+ deploy && sleep 30
181
+ echo " Deployment completed."
182
182
fi
183
-
184
- EXISTING_DEPLOYMENTS=` ssh -o " StrictHostKeyChecking no" -i /tmp/sshkey.pem ${SSH_USER} @${DEPLOYMENT_SERVER} " sudo docker ps | grep -i " ${LW_REPO_NAME} " | wc -l" `
185
-
186
- if [ ${EXISTING_DEPLOYMENTS} -ge ${MAX_DEPLOYMENTS_NR} ]; then
187
- echo " Maximum deployments reached on ${SDK_ENVIRONMENT} environment for ${BUILD_REPO_NAME} ; existing deployments: ${EXISTING_DEPLOYMENTS} ; max depl: ${MAX_DEPLOYMENTS_NR} "
188
- echo " Stopping container ${OLDEST_CONTAINER} ..."
189
- RCMD=' ssh -o "StrictHostKeyChecking no" -i /tmp/sshkey.pem '
190
- RCMD=" ${RCMD} ${SSH_USER} @${DEPLOYMENT_SERVER} "
191
- REM=' " sudo docker stop '
192
- RCMD=" ${RCMD} $REM ${OLDEST_DJANGO_CONTAINER} OLDEST_CONTAINER" ' "'
193
- echo $RCMD | bash
194
- sleep 12
195
-
196
- deploy_service
197
- else
198
- echo " Deploying service ..."
199
- deploy_service
200
- fi
0 commit comments