summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2019-09-10 17:52:53 +0000
committerRémy Coutable <remy@rymai.me>2019-09-10 17:52:53 +0000
commitd7061cef98c10f5abef28e60dc764d4c3611c1bd (patch)
tree3b7888712a66d20922683a0b324f178711a14c56
parent946af3b649e7fcd51e04986c5eb7c3dd4da56242 (diff)
parent5a1659d884ff2e5b71b86cca4203245ac098c41b (diff)
downloadgitlab-ce-d7061cef98c10f5abef28e60dc764d4c3611c1bd.tar.gz
Merge branch 'add-review-app-cleanup' into 'master'
Add review-cleanup-failed-deployment to prepare See merge request gitlab-org/gitlab-ce!32839
-rw-r--r--.gitlab/ci/review.gitlab-ci.yml9
-rwxr-xr-xscripts/review_apps/review-apps.sh21
2 files changed, 29 insertions, 1 deletions
diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml
index 6f1505b5c0d..8e612243371 100644
--- a/.gitlab/ci/review.gitlab-ci.yml
+++ b/.gitlab/ci/review.gitlab-ci.yml
@@ -134,6 +134,15 @@ review-stop:
artifacts:
paths: []
+review-cleanup-failed-deployment:
+ extends: review-stop
+ stage: prepare
+ when: on_success
+ needs: []
+ allow_failure: false
+ script:
+ - delete_failed_release
+
.review-qa-base:
extends:
- .review-docker
diff --git a/scripts/review_apps/review-apps.sh b/scripts/review_apps/review-apps.sh
index a9549171b54..b95bc4e743e 100755
--- a/scripts/review_apps/review-apps.sh
+++ b/scripts/review_apps/review-apps.sh
@@ -49,6 +49,26 @@ function delete_release() {
helm delete --purge "$name"
}
+function delete_failed_release() {
+ if [ -z "$CI_ENVIRONMENT_SLUG" ]; then
+ echoerr "No release given, aborting the delete!"
+ return
+ fi
+
+ if ! deploy_exists "${KUBE_NAMESPACE}" "${CI_ENVIRONMENT_SLUG}"; then
+ echoinfo "No Review App with ${CI_ENVIRONMENT_SLUG} is currently deployed."
+ else
+ # Cleanup and previous installs, as FAILED and PENDING_UPGRADE will cause errors with `upgrade`
+ if previous_deploy_failed "$CI_ENVIRONMENT_SLUG" ; then
+ echoinfo "Review App deployment in bad state, cleaning up $CI_ENVIRONMENT_SLUG"
+ delete_release
+ else
+ echoinfo "Review App deployment in good state"
+ fi
+ fi
+}
+
+
function get_pod() {
local app_name="${1}"
local status="${2-Running}"
@@ -193,7 +213,6 @@ function deploy() {
HELM_CMD=$(cat << EOF
helm upgrade --install \
- --force \
--wait \
--timeout 900 \
--set releaseOverride="$CI_ENVIRONMENT_SLUG" \