Skip to content
Snippets Groups Projects

Integration Testing: Sequential Merge and Validation of Four Feature Branches (PR #43,#44, #45,#46)

1 file
+ 6
2
Compare changes
  • Side-by-side
  • Inline
+ 38
3
@@ -36,29 +36,50 @@ prep-deploy:
if [ "$TARGET_ENV" = "dev" ]; then
TF_VAR_data_volume="xdmod-dev-volume-$BUILD_DATE"
openstack volume create --snapshot xdmod-dev-volume-snap --size 20 $TF_VAR_data_volume
TF_VAR_xdmod_queue_data_volume="xdmod-dev-queue-volume-$BUILD_DATE"
openstack volume create --snapshot xdmod-queue-volume-snap --size 1 $TF_VAR_xdmod_queue_data_volume
elif [ "$TARGET_ENV" = "staging" ]; then
TF_VAR_data_volume="xdmod-staging-volume-$BUILD_DATE"
openstack volume create --snapshot xdmod-staging-vol-snapshot --size 150 $TF_VAR_data_volume
elif [ "$TARGET_ENV" = "production" ]; then
export prod_instance_id=$(openstack floating ip show $prod_floating_ip -c port_details -f value | awk -F', ' '{print $2}' | awk -F"'" '{print $2}')
export prod_volume=$(openstack server show $prod_instance_id -c volumes_attached -f value | awk -F"'" '{print $4}')
export volume_ids=$(openstack server show $prod_instance_id -c volumes_attached | grep -o "id='[a-zA-Z0-9\-]*'" | awk -F "'" '{print $2}')
for volume_id in $volume_ids; do
volume_name=$(openstack volume show $volume_id -c name -f value)
if [[ $volume_name == xdmod-dev-volume* ]]; then
export prod_volume=$volume_id
elif [[ $volume_name == xdmod-dev-queue-volume* ]]; then
export prod_queue_volume=$volume_id
fi
done
echo "Detaching prod_volume=${prod_volume} from prod_instance_id=${prod_instance_id} and creating a snapshot"
echo "Detaching prod_queue_volume=${prod_queue_volume} from prod_instance_id=${prod_instance_id} and creating a snapshot"
openstack server stop $prod_instance_id && openstack server show $prod_instance_id
openstack server remove volume $prod_instance_id $prod_volume
openstack server remove volume $prod_instance_id $prod_queue_volume
openstack volume snapshot create --volume $prod_volume xdmod-prod-vol-snapshot-$BUILD_DATE
openstack volume snapshot create --volume $prod_queue_volume xdmod-prod-queue-vol-snapshot-$BUILD_DATE
echo "Reattach the prod_volume=${prod_volume} to prod_instance_id=${prod_instance_id} after snapshot is created"
openstack server add volume $prod_instance_id $prod_volume --device /dev/vdb
openstack server add volume $prod_instance_id $prod_queue_volume --device /dev/vdc
openstack server start $prod_instance_id
echo "Make a copy of prod volume $prod_volume to be used in tf-apply"
TF_VAR_data_volume="xdmod-prod-vol-$BUILD_DATE"
openstack volume create --snapshot xdmod-prod-vol-snapshot-$BUILD_DATE --size 150 $TF_VAR_data_volume
echo "Make a copy of prod queue volume $prod_volume to be used in tf-apply"
TF_VAR_xdmod_queue_data_volume="xdmod-prod-queue-vol-$BUILD_DATE"
openstack volume create --snapshot xdmod-prod-queue-vol-snapshot-$BUILD_DATE --size 1 $TF_VAR_xdmod_queue_data_volume
else
echo "Unknown TARGET_ENV: $TARGET_ENV"
exit 1
fi
echo "TF_VAR_data_volume=${TF_VAR_data_volume}" | tee -a $CI_PROJECT_DIR/vars.env
echo "TF_VAR_xdmod_queue_data_volume=${TF_VAR_xdmod_queue_data_volume}" | tee -a $CI_PROJECT_DIR/vars.env
echo "TF_VAR_flavor=${TF_VAR_flavor}" | tee -a $CI_PROJECT_DIR/vars.env
echo "BUILD_DATE=${BUILD_DATE}" | tee -a $CI_PROJECT_DIR/vars.env
echo "prod_instance_id=${prod_instance_id}" | tee -a $CI_PROJECT_DIR/vars.env
@@ -142,7 +163,21 @@ production-deploy:
stage: deploy
tags: [build]
script:
- echo "swap the floating IP between prod and newly deployed instances"
- export prod_instance_id=$(openstack floating ip show $prod_floating_ip -c port_details -f value | awk -F', ' '{print $2}' | awk -F"'" '{print $2}')
- export prod_volume=$(openstack server show $prod_instance_id -c volumes_attached -f value | awk -F"'" '{print $4}')
- export prod_queue_volume=$(openstack server show $prod_instance_id -c volumes_attached -f value | awk -F"'" '{print $4}' | awk 'NR==2')
- echo "prod_volume $prod_volume"
- echo "prod_instance_id $prod_instance_id"
- echo "prod_queue_volume $prod_queue_volume"
- |
eval $(ssh-agent -s)
chmod 400 "${SSH_PRIV_KEY}"
ssh-add "${SSH_PRIV_KEY}"
mkdir ~/.ssh
chmod 700 ~/.ssh
- echo "swap the floating IP between prod and staging instances"
- openstack server remove floating ip $prod_instance_id $prod_floating_ip
- openstack server remove floating ip $instance_id $instance_floating_ip
- openstack server add floating ip $instance_id $prod_floating_ip
Loading