@@ -8,14 +8,13 @@ stages:
88 - test
99 - package
1010 - deploy
11-
11+ - certificates
1212
1313variables :
1414 DOCKER_DRIVER : overlay2
1515 IMAGE_NAME : gcr.io/zinc-computer-205115/apiopenfuture
1616 IMAGE_TAG : ${CI_COMMIT_REF_NAME}-${CI_PIPELINE_ID}
1717
18-
1918# ##########################
2019# Building
2120# ##########################
@@ -37,6 +36,8 @@ build-jar:
3736 only :
3837 - master
3938 - sprint
39+ except :
40+ - schedules
4041
4142unit-tests :
4243 stage : test
@@ -50,6 +51,7 @@ unit-tests:
5051 GOOGLE_CLIENT_SECRET : $GOOGLE_CLIENT_SECRET_DEV
5152 INFURA_URL : $INFURA_URL_DEV
5253 ETHEREUM_PRIVATE_KEY : $ETHEREUM_PRIVATE_KEY_DEV
54+ OPEN_TOKEN_ADDRESS : $OPEN_TOKEN_ADDRESS_DEV
5355 services :
5456 - name : postgres
5557 alias : $POSTGRES_HOST
@@ -67,7 +69,8 @@ unit-tests:
6769 - build/libs/*.jar
6870 - build/reports/tests/test/
6971 expire_in : 1 week
70-
72+ except :
73+ - schedules
7174
7275.registry-auth-script : ®istry_auth
7376 - docker login -u _json_key -p "${GOOGLE_JSON_TOKEN}" https://gcr.io
@@ -81,8 +84,8 @@ package-docker:
8184 only :
8285 - sprint
8386 - master
84-
85-
87+ except :
88+ - schedules
8689
8790# ##########################
8891# Deployment
@@ -96,14 +99,12 @@ package-docker:
9699 - ssh-keyscan $DEPLOY_HOST >> ~/.ssh/known_hosts
97100 - chmod 644 ~/.ssh/known_hosts
98101
99-
100102.deploy-to-host-script : &deploy_to_host
101- - |
102- ssh ${DEPLOY_USER}@${DEPLOY_HOST} "docker login -u _json_key -p '${GOOGLE_JSON_TOKEN}' https://gcr.io"
103+ - ssh ${DEPLOY_USER}@${DEPLOY_HOST} "docker login -u _json_key -p '${GOOGLE_JSON_TOKEN}' https://gcr.io"
103104 - ssh ${DEPLOY_USER}@${DEPLOY_HOST} "docker pull ${IMAGE_NAME}:${IMAGE_TAG}"
104105 - |
105106 ssh ${DEPLOY_USER}@${DEPLOY_HOST} "
106- docker inspect ${CONTAINER_NAME} && \
107+ docker stop ${CONTAINER_NAME} && \
107108 IMG=\$(docker ps -a --filter='name=^/${CONTAINER_NAME}$' --format='{{.Image}}') && \
108109 docker rm -f ${CONTAINER_NAME} && \
109110 docker rmi \$IMG; \
@@ -121,9 +122,24 @@ package-docker:
121122 -e "GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}" \
122123 -e "INFURA_URL=${INFURA_URL}" \
123124 -e "ETHEREUM_PRIVATE_KEY=${ETHEREUM_PRIVATE_KEY}" \
125+ -e "OPEN_TOKEN_ADDRESS=${OPEN_TOKEN_ADDRESS}" \
124126 ${IMAGE_NAME}:${IMAGE_TAG}
125127 "
126128
129+ .update-certificates-script : &update_certificates
130+ - |
131+ ssh ${DEPLOY_USER}@${DEPLOY_HOST} "
132+ docker run --rm -it --name certbot \
133+ -v /etc/letsencrypt:/etc/letsencrypt \
134+ -v /var/www/certbot:/var/www/acme-challenge \
135+ -v /var/log/letsencrypt:/var/log/letsencrypt \
136+ certbot/certbot \
137+ certonly --webroot -w /var/www/acme-challenge/ \
138+ -d ${SERVER_NAME} \
139+ --renew-by-default -m devops@zensoft.io --eff-email --agree-tos --manual-public-ip-logging-ok
140+ "
141+ - ssh ${DEPLOY_USER}@${DEPLOY_HOST} "sudo service nginx reload"
142+
127143deploy-development :
128144 stage : deploy
129145 variables :
@@ -139,13 +155,16 @@ deploy-development:
139155 GOOGLE_CLIENT_SECRET : $GOOGLE_CLIENT_SECRET_DEV
140156 INFURA_URL : $INFURA_URL_DEV
141157 ETHEREUM_PRIVATE_KEY : $ETHEREUM_PRIVATE_KEY_DEV
158+ OPEN_TOKEN_ADDRESS : $OPEN_TOKEN_ADDRESS_DEV
142159 before_script : *prepare_key
143160 script : *deploy_to_host
144161 only :
145162 - sprint
146163 environment :
147164 name : development
148165 url : http://api.open-platform.zensoft.io
166+ except :
167+ - schedules
149168
150169deploy-production :
151170 stage : deploy
@@ -162,10 +181,37 @@ deploy-production:
162181 GOOGLE_CLIENT_SECRET : $GOOGLE_CLIENT_SECRET_PROD
163182 INFURA_URL : $INFURA_URL_PROD
164183 ETHEREUM_PRIVATE_KEY : $ETHEREUM_PRIVATE_KEY_PROD
184+ OPEN_TOKEN_ADDRESS : $OPEN_TOKEN_ADDRESS_PROD
165185 before_script : *prepare_key
166186 script : *deploy_to_host
167187 only :
168188 - master
169189 environment :
170190 name : production
171191 url : https://api.openfuture.io
192+ except :
193+ - schedules
194+
195+ certificates-development :
196+ stage : certificates
197+ variables :
198+ DEPLOY_USER : $DEPLOY_USER_DEV
199+ DEPLOY_HOST : $DEPLOY_HOST_DEV
200+ DEPLOY_KEY : $DEPLOY_KEY_DEV
201+ SERVER_NAME : " api.open-platform.zensoft.io"
202+ before_script : *prepare_key
203+ script : *update_certificates
204+ only :
205+ - schedules
206+
207+ certificates-production :
208+ stage : certificates
209+ variables :
210+ DEPLOY_USER : $DEPLOY_USER_PROD
211+ DEPLOY_HOST : $DEPLOY_HOST_PROD
212+ DEPLOY_KEY : $DEPLOY_KEY_PROD
213+ SERVER_NAME : " api.openfuture.io"
214+ before_script : *prepare_key
215+ script : *update_certificates
216+ only :
217+ - schedules
0 commit comments