diff --git a/abra b/abra index 5ea51f8d..36a98726 100755 --- a/abra +++ b/abra @@ -421,6 +421,24 @@ if [ -z "$ABRA_ENV" ] && [ -f .env ] && type direnv > /dev/null 2>&1 && ! direnv error "direnv is blocked, run direnv allow" fi +require_consent_for_update (){ + if [ "$CONSENT_TO_UPDATE" = "false" ] && \ + [ -n "$deployed_version" ] && \ + [ "$ABRA_TYPE_VERSION" != "$deployed_version" ]; then + error "This deployment will be an app update from version ${deployed_version} -> ${ABRA_TYPE_VERSION} + Please pass the --update option to the deploy to deploy the update" + fi + + if [ "$CONSENT_TO_UPDATE" = "false" ] && \ + [ "$ABRA_TYPE_VERSION" = "$deployed_version" ] && \ + [ "$ABRA_TYPE_DIGEST" != "$deployed_digest" ]; then + error "The app version is the same but the image digest has changed from ${deployed_digest} -> ${ABRA_TYPE_DIGEST} + This should not happen! This may mean that the upstream app developers are overwriting their image tags + Get in touch and let's make the builds stable together: https://docs.cloud.autonomic.zone/contact/ + Please pass the --update option to deploy the update anyway" + fi +} + ###### Run-time loading load_abra_sh() { @@ -887,26 +905,22 @@ sub_app_deploy (){ deployed_version=$(echo "$deployed_version_digest" | cut -d- -f1) deployed_digest=$(echo "$deployed_version_digest" | cut -d- -f2) - if [ "$CONSENT_TO_UPDATE" = "false" ] && [ "$ABRA_TYPE_VERSION" != "$deployed_version" ]; then - error "This deployment will be an app update from version ${deployed_version} -> ${ABRA_TYPE_VERSION} - Please pass the --update option to the deploy to deploy the update" - fi - - if [ "$CONSENT_TO_UPDATE" = "false" ] && \ - [ "$ABRA_TYPE_VERSION" = "$deployed_version" ] && \ - [ "$ABRA_TYPE_DIGEST" != "$deployed_digest" ]; then - error "The app version is the same but the image digest has changed from ${deployed_digest} -> ${ABRA_TYPE_DIGEST} - This should not happen! This may mean that the upstream app developers are overwriting their image tags - Get in touch and let's make the builds stable together: https://docs.cloud.autonomic.zone/contact/ - Please pass the --update option to deploy the update anyway" - fi - - if [ "$ABRA_TYPE_VERSION" != "$deployed_version" ]; then - echo "About to deploy (NEW VERSION):" - else - echo "About to deploy:" + about_to_deploy_msg="About to deploy:" + version_msg=" Version: $(tput setaf 2)${ABRA_TYPE_VERSION} (digest: ${ABRA_TYPE_DIGEST})$(tput sgr0)" + + if [ -n "$deployed_version" ] && [ -n "$deployed_digest" ]; then + require_consent_for_update + + if [ "$ABRA_TYPE_VERSION" != "$deployed_version" ]; then + about_to_deploy_msg="About to deploy (NEW VERSION):" + fi + + if [ "$ABRA_TYPE_VERSION" != "$deployed_version" ]; then + version_msg=" Version: $(tput setaf 2)$deployed_version -> ${ABRA_TYPE_VERSION} (digest: $deployed_digest -> ${ABRA_TYPE_DIGEST})$(tput sgr0)" + fi fi + echo "$about_to_deploy_msg" echo " Server: $(tput setaf 4)${SERVER}$(tput sgr0)" if [ "${COMPOSE_FILE/:/}" == "${COMPOSE_FILE}" ]; then @@ -925,11 +939,7 @@ sub_app_deploy (){ fi if [ -n "$ABRA_TYPE_VERSION" ] && [ -n "$ABRA_TYPE_DIGEST" ]; then - if [ "$ABRA_TYPE_VERSION" != "$deployed_version" ]; then - echo " Version: $(tput setaf 2)$deployed_version -> ${ABRA_TYPE_VERSION} (digest: $deployed_digest -> ${ABRA_TYPE_DIGEST})$(tput sgr0)" - else - echo " Version: $(tput setaf 2)${ABRA_TYPE_VERSION} (digest: ${ABRA_TYPE_DIGEST})$(tput sgr0)" - fi + echo "$version_msg" fi echo " Stack: $(tput setaf 1)${STACK_NAME}$(tput sgr0)"