From 77d95fb39e6664e986650ad7ef73f08d50175d91 Mon Sep 17 00:00:00 2001 From: Maria Petrova <m.petrova@fz-juelich.de> Date: Mon, 7 Mar 2022 14:10:58 +0100 Subject: [PATCH] CI/CD was failing when a testing server doesn't exist --- .gitlab-ci.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f1b83a2..fde54a9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -113,8 +113,10 @@ full-deploy-testing: script: - echo "Starting the full testing deployment." - pip install python-openstackclient - - OLD_ID=`openstack server show $TESTING_NAME -f value -c id` - - openstack server set --name $OLD_TEST_NAME $OLD_ID + - OLD_ID=`openstack server show $TESTING_NAME -f value -c id` && server_exists=true || echo "No testing server found. It might be a first time deployment" + - if [ "$server_exists" = true ] ; then + openstack server set --name $OLD_TEST_NAME $OLD_ID; + fi # TODO get and locally store zip of old certificate-docker-volume - INSTANCE_ID=`openstack server create -f value -c id --prefix IMAGE_ --flavor s1 --image 149a65b5-aeb8-499f-aaa6-ec966bd28dd6 --user-data deploy_scripts/cloudinit.yml --security-group ssh --security-group www --security-group https $TESTING_NAME` - while [ "`openstack server show $INSTANCE_ID -c addresses -f value`" = "{}" ]; do sleep 5; done # wait until an address is available to attach the floating ip @@ -144,11 +146,13 @@ cleanup-failed-full-deployment: - OLD_PROD_ID=`openstack server show $OLD_PROD_NAME -f value -c id` && rollback_prod=true || echo "No old production server found." # if applicable: rollback test server - if [ "$rollback_test" = true ] ; then - REMOVE_ID=`openstack server show $TESTING_NAME -f value -c id`; + REMOVE_ID=`openstack server show $TESTING_NAME -f value -c id` && new_deployment_exists=true || echo "No new testing server has been created."; openstack server set --name $TESTING_NAME $OLD_TEST_ID; openstack server add floating ip $OLD_TEST_ID $TESTING_IP; + if [ "$new_deployment_exists" = true ] ; then openstack server delete $REMOVE_ID && echo "Deleted faulty testing server."; fi + fi # if applicable, rollback prod server - if [ "$rollback_prod" = true ] ; then REMOVE_ID=`openstack server show $PRODUCTION_NAME -f value -c id` || echo "No new production server found."; -- GitLab