Skip to content

Commit 10b1f84

Browse files
committed
chore: CodeDeploy lifecycle 로그 조회 워크플로우
1 parent f3921c6 commit 10b1f84

1 file changed

Lines changed: 29 additions & 41 deletions

File tree

.github/workflows/ec2-reboot.yml

Lines changed: 29 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
name: EC2-READ-DIAGNOSTIC
1+
name: EC2-READ-DEPLOY-LOG
22

33
on:
44
workflow_dispatch:
55

66
jobs:
7-
read-diag:
8-
name: Read S3 Diagnostic
7+
read-log:
8+
name: Read CodeDeploy Logs
99
runs-on: ubuntu-latest
1010

1111
steps:
@@ -16,50 +16,38 @@ jobs:
1616
aws-secret-access-key: ${{ secrets.AWS_PROD_SECRET_KEY }}
1717
aws-region: ap-northeast-2
1818

19-
- name: Check latest CodeDeploy deployment
19+
- name: Get deployment lifecycle events
2020
run: |
21-
LATEST=$(aws deploy list-deployments \
21+
echo "=== 최근 배포 목록 (최대 5개) ==="
22+
DEPLOYMENTS=$(aws deploy list-deployments \
2223
--application-name runnect-prod-codedeploy \
2324
--deployment-group-name runnect-prod-codedeploy-group \
24-
--query "deployments[0]" \
25+
--query "deployments[:5]" \
2526
--output text 2>/dev/null)
26-
echo "Latest deployment: $LATEST"
27+
echo "Deployments: $DEPLOYMENTS"
2728
28-
aws deploy get-deployment --deployment-id "$LATEST" \
29-
--query "deploymentInfo.{status:status, createTime:createTime, completeTime:completeTime}" \
30-
--output json 2>&1
31-
32-
- name: List S3 diagnostics
33-
run: |
34-
echo "=== S3 diagnostics 폴더 ==="
35-
aws s3 ls s3://runnect-prod-bucket/diagnostics/ 2>&1 || echo "diagnostics 폴더 없거나 접근 불가"
36-
37-
echo ""
38-
echo "=== S3 버킷 전체 목록 ==="
39-
aws s3 ls s3://runnect-prod-bucket/ 2>&1 || echo "S3 접근 실패"
29+
for DEP_ID in $DEPLOYMENTS; do
30+
echo ""
31+
echo "================================================"
32+
echo "=== Deployment: $DEP_ID ==="
33+
echo "================================================"
4034
41-
- name: Download and display diagnostic file
42-
run: |
43-
echo "=== 진단 파일 다운로드 시도 ==="
44-
LATEST_FILE=$(aws s3 ls s3://runnect-prod-bucket/diagnostics/ --recursive 2>/dev/null | sort | tail -1 | awk '{print $4}')
35+
aws deploy get-deployment --deployment-id "$DEP_ID" \
36+
--query "deploymentInfo.{status:status, createTime:createTime, completeTime:completeTime, error:errorInformation}" \
37+
--output json 2>&1
4538
46-
if [ -n "$LATEST_FILE" ]; then
47-
echo "Found: $LATEST_FILE"
48-
aws s3 cp "s3://runnect-prod-bucket/$LATEST_FILE" /tmp/diagnostic.txt 2>&1
49-
echo ""
50-
echo "=== DIAGNOSTIC CONTENTS ==="
51-
cat /tmp/diagnostic.txt
52-
else
53-
echo "진단 파일이 없습니다."
5439
echo ""
55-
echo "S3에 직접 접근하여 모든 파일 확인..."
56-
aws s3 ls s3://runnect-prod-bucket/ --recursive 2>&1 | tail -20
57-
fi
58-
59-
- name: Health check from GitHub Actions
60-
run: |
61-
echo "=== External Health Check ==="
62-
for PORT in 80 8081 8082; do
63-
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 5 --max-time 10 http://3.35.195.11:$PORT/actuator/health 2>/dev/null || echo "000")
64-
echo "Port $PORT: HTTP $HTTP_CODE"
40+
echo "--- Instance lifecycle events ---"
41+
INSTANCES=$(aws deploy list-deployment-instances \
42+
--deployment-id "$DEP_ID" \
43+
--query "instancesList" \
44+
--output text 2>/dev/null)
45+
46+
for INST in $INSTANCES; do
47+
echo "Instance: $INST"
48+
aws deploy get-deployment-instance \
49+
--deployment-id "$DEP_ID" \
50+
--instance-id "$INST" \
51+
--output json 2>&1
52+
done
6553
done

0 commit comments

Comments
 (0)