Skip to content

Commit 6661866

Browse files
committed
ci: add cleanup pipeline workflow
1 parent 4b206a2 commit 6661866

1 file changed

Lines changed: 113 additions & 0 deletions

File tree

.github/workflows/cleanup.yml

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
name: Cleanup Pipeline
2+
3+
on:
4+
workflow_dispatch:
5+
6+
jobs:
7+
cleanup:
8+
runs-on: ubuntu-latest
9+
10+
steps:
11+
- name: Configure AWS credentials
12+
uses: aws-actions/configure-aws-credentials@v4
13+
with:
14+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
15+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
16+
aws-region: us-east-2
17+
18+
- name: Scale down ECS services
19+
run: |
20+
aws ecs update-service \
21+
--cluster regression-model-cluster-for-project \
22+
--service regression-model-cluster-for-project-service-07233mgp \
23+
--desired-count 0 || true
24+
25+
aws ecs update-service \
26+
--cluster regression-model-cluster-for-project \
27+
--service housing-streamlit-service-5cvxvvhd \
28+
--desired-count 0 || true
29+
30+
- name: Delete ECS services
31+
run: |
32+
aws ecs delete-service \
33+
--cluster regression-model-cluster-for-project \
34+
--service regression-model-cluster-for-project-service-07233mgp \
35+
--force || true
36+
37+
aws ecs delete-service \
38+
--cluster regression-model-cluster-for-project \
39+
--service housing-streamlit-service-5cvxvvhd \
40+
--force || true
41+
42+
- name: Delete ALB
43+
run: |
44+
ALB_ARN=$(aws elbv2 describe-load-balancers \
45+
--query 'LoadBalancers[?contains(LoadBalancerName, `housing`)].LoadBalancerArn' \
46+
--output text)
47+
48+
if [ -n "$ALB_ARN" ]; then
49+
aws elbv2 delete-load-balancer --load-balancer-arn "$ALB_ARN"
50+
echo "ALB deleted: $ALB_ARN"
51+
sleep 10
52+
else
53+
echo "No ALB found, skipping"
54+
fi
55+
56+
- name: Delete target groups
57+
run: |
58+
TG_ARNS=$(aws elbv2 describe-target-groups \
59+
--query 'TargetGroups[?contains(TargetGroupName, `regression`)].TargetGroupArn' \
60+
--output text)
61+
62+
for ARN in $TG_ARNS; do
63+
aws elbv2 delete-target-group --target-group-arn "$ARN" || true
64+
echo "Deleted target group: $ARN"
65+
done
66+
67+
- name: Delete ECS cluster
68+
run: |
69+
aws ecs delete-cluster \
70+
--cluster regression-model-cluster-for-project || true
71+
72+
- name: Delete ECR repositories
73+
run: |
74+
for REPO in housing-api housing-streamlit; do
75+
aws ecr delete-repository \
76+
--repository-name "$REPO" \
77+
--force || true
78+
echo "Deleted ECR repo: $REPO"
79+
done
80+
81+
- name: Delete CloudWatch log groups
82+
run: |
83+
LOG_GROUPS=$(aws logs describe-log-groups \
84+
--query 'logGroups[?contains(logGroupName, `ecs`) || contains(logGroupName, `housing`)].logGroupName' \
85+
--output text)
86+
87+
for LG in $LOG_GROUPS; do
88+
aws logs delete-log-group --log-group-name "$LG" || true
89+
echo "Deleted log group: $LG"
90+
done
91+
92+
- name: Empty and delete S3 bucket
93+
run: |
94+
BUCKET="model-regression-data"
95+
96+
if aws s3api head-bucket --bucket "$BUCKET" 2>/dev/null; then
97+
aws s3 rm s3://$BUCKET --recursive
98+
aws s3api delete-bucket --bucket "$BUCKET"
99+
echo "S3 bucket $BUCKET deleted"
100+
else
101+
echo "Bucket $BUCKET not found, skipping"
102+
fi
103+
104+
- name: Summary
105+
run: |
106+
echo "Cleanup complete. Resources deleted:"
107+
echo " - ECS services (API + Streamlit)"
108+
echo " - ECS cluster"
109+
echo " - ALB + listeners + rules"
110+
echo " - Target groups"
111+
echo " - ECR repositories + images"
112+
echo " - CloudWatch log groups"
113+
echo " - S3 bucket + all objects"

0 commit comments

Comments
 (0)