featurebase/qa/scripts/gitlabCleanupBuild.sh
Bruce Baranowski b7516eacc5
CICD: fix Cleanup_Build_Job inconsistent failures (#2098)
* add aws profile to cleanup job

* Split cleanup into bash script

* change spot instances to one-tme
2022-06-14 11:49:25 -04:00

37 lines
No EOL
1.5 KiB
Bash
Executable file

#!/bin/bash
CLEANUP_EC2_IDS=$(aws ec2 describe-instances --profile service-terraform --region us-east-2 --filters Name=instance-state-name,Values=pending,running "Name=tag:Name,Values=pipeline-${CI_PIPELINE_ID}-*" --query 'Reservations[*].Instances[*].[InstanceId]' --output text | tr '\n' ' ')
if [ -n "${CLEANUP_EC2_IDS}" ]
then
echo "ec2 Instances found, terminating."
echo $CLEANUP_EC2_IDS
IFS=', ' read -r -a array <<< "$CLEANUP_EC2_IDS"
aws ec2 terminate-instances --profile service-terraform --region us-east-2 --instance-ids "${array[@]}"
res=$?
if (( $res != 0 )); then
echo "Error: instances not terminated - ${CLEANUP_EC2_IDS}"
exit $res
fi
else
echo 'No hanging ec2 instances'
fi
CLEANUP_CF_ID=$(aws cloudformation list-stacks --region us-east-2 --stack-status-filter CREATE_IN_PROGRESS CREATE_COMPLETE --query "StackSummaries[?contains(StackName, \`pipeline-${CI_PIPELINE_ID}\`) == \`true\`].[StackName]" --output text | tr '\n' ' ')
if [ -n "${CLEANUP_CF_ID}" ]
then
echo "CF stacks found, deleting."
echo $CLEANUP_CF_ID
IFS=', ' read -r -a array <<< "$CLEANUP_CF_ID"
for element in "${array[@]}"
do
aws cloudformation delete-stack --region us-east-2 --stack-name $element --retain-resources DeploymentEC2Role
res=$?
if (( $res != 0 )); then
echo "Error: stacks not deleted - ${CLEANUP_CF_ID}"
exit $res
fi
done
else
echo "No CF stacks to cleanup"
fi