File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 22
33## 1.1.1 under development
44
5+ - New #421 : Improve ` prod-deploy ` error handling so exact error is printed in case of rollback (@samdark )
56- Enh #424 : Refactor ` Makefile ` default command help logic (@samdark )
67- Enh #435 : Set locale ` C.UTF-8 ` in ` Dockerfile ` (@vjik )
78
Original file line number Diff line number Diff line change @@ -121,7 +121,19 @@ endif
121121
122122ifeq ($(PRIMARY_GOAL ) ,prod-deploy)
123123prod-deploy : # # PROD | Deploy to production
124- docker -H ${PROD_SSH} stack deploy --prune --detach=false --with-registry-auth -c docker/compose.yml -c docker/prod/compose.yml ${STACK_NAME}
124+ set -euo pipefail \
125+ docker -H ${PROD_SSH} stack deploy --prune --detach=false --with-registry-auth -c docker/compose.yml -c docker/prod/compose.yml ${STACK_NAME} 2>&1 | tee deploy.log \
126+ if grep -qiE ' rollback:|update rolled back' deploy.log then \
127+ FAILED_TASK_ID=" $( grep -oiE ' task[[:space:]]+[a-z0-9]+' deploy.log | head -n 1 | awk ' {print $2}' ) " \
128+ if [ -n " ${FAILED_TASK_ID} " ]; then \
129+ echo " Docker Swarm update rolled back; failing job. Failed task ID: ${FAILED_TASK_ID} " \
130+ echo " --- docker service logs (${FAILED_TASK_ID} ) ---" \
131+ docker -H ${PROD_SSH} service logs --timestamps --tail 500 " ${FAILED_TASK_ID} " || true \
132+ else \
133+ echo ' Docker Swarm update rolled back; failing job. Failed task ID: not found in deploy output.' \
134+ fi \
135+ exit 1 \
136+ fi
125137endif
126138
127139#
You can’t perform that action at this time.
0 commit comments