Skip to content

Commit 76c9637

Browse files
authored
Merge pull request #58 from YAPP-Github/feat/38-fix
38 fix: workflow Discord Webhook 미전송 문제 해결
2 parents 617b8b6 + 0b4f1d0 commit 76c9637

File tree

2 files changed

+27
-19
lines changed

2 files changed

+27
-19
lines changed

.github/workflows/terraform-apply-sandbox.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,16 +80,16 @@ jobs:
8080
-reconfigure
8181
8282
- name: Terraform Apply
83+
id: tfapply
8384
continue-on-error: true
8485
run: |
85-
set -o pipefail
8686
terraform apply \
8787
-auto-approve \
8888
-var-file="sandbox.tfvars"
8989
9090
# ✅ Apply 성공
9191
- name: Send Discord Notification (Apply Success)
92-
if: always() && job.status == 'success'
92+
if: steps.tfapply.outcome == 'success'
9393
env:
9494
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
9595
run: |
@@ -103,7 +103,7 @@ jobs:
103103
104104
# ❌ Apply 실패
105105
- name: Send Discord Notification (Apply Failure)
106-
if: always() && job.status == 'failure'
106+
if: steps.tfapply.outcome == 'failure'
107107
env:
108108
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
109109
run: |
@@ -119,5 +119,5 @@ jobs:
119119
if: always()
120120
run: |
121121
echo "### Result" >> $GITHUB_STEP_SUMMARY
122-
echo "- Status: ${{ job.status }}" >> $GITHUB_STEP_SUMMARY
122+
echo "- Status: ${{ steps.tfapply.outcome }}" >> $GITHUB_STEP_SUMMARY
123123
echo "- Apply Commit: ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY

.github/workflows/terraform-plan-sandbox.yml

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -75,19 +75,20 @@ jobs:
7575
-reconfigure
7676
7777
- name: Terraform Plan
78+
id: tfplan
7879
continue-on-error: true
7980
run: |
8081
terraform plan \
8182
-var-file="sandbox.tfvars" \
8283
-out=tfplan
8384
8485
- name: Convert Plan to JSON
85-
if: always()
86+
if: steps.tfplan.outcome == 'success'
8687
run: |
8788
terraform show -json tfplan > plan.json
8889
8990
- name: Extract Plan Summary
90-
if: always()
91+
if: steps.tfplan.outcome == 'success'
9192
run: |
9293
PLAN_ADD=$(jq '[.resource_changes[] | select(.change.actions | index("create"))] | length' plan.json)
9394
PLAN_CHANGE=$(jq '[.resource_changes[] | select(.change.actions | index("update"))] | length' plan.json)
@@ -105,7 +106,7 @@ jobs:
105106
106107
echo "- Branch: sandbox" >> $GITHUB_STEP_SUMMARY
107108
echo "- Commit: ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY
108-
echo "- Status: ${{ job.status }}" >> $GITHUB_STEP_SUMMARY
109+
echo "- Status: ${{ steps.tfplan.outcome }}" >> $GITHUB_STEP_SUMMARY
109110
echo "" >> $GITHUB_STEP_SUMMARY
110111
111112
echo "### Change Summary" >> $GITHUB_STEP_SUMMARY
@@ -114,36 +115,43 @@ jobs:
114115
echo "- ❌ Destroy: ${PLAN_DESTROY:-0}" >> $GITHUB_STEP_SUMMARY
115116
echo "" >> $GITHUB_STEP_SUMMARY
116117
117-
echo "<details><summary>📄 Full Terraform Plan</summary>" >> $GITHUB_STEP_SUMMARY
118-
echo "" >> $GITHUB_STEP_SUMMARY
119-
echo '```terraform' >> $GITHUB_STEP_SUMMARY
120-
terraform show tfplan | sed -n '1,300p' >> $GITHUB_STEP_SUMMARY
121-
echo '```' >> $GITHUB_STEP_SUMMARY
122-
echo "</details>" >> $GITHUB_STEP_SUMMARY
118+
if [ -f tfplan ]; then
119+
echo "<details><summary>📄 Full Terraform Plan</summary>" >> $GITHUB_STEP_SUMMARY
120+
echo "" >> $GITHUB_STEP_SUMMARY
121+
echo '```terraform' >> $GITHUB_STEP_SUMMARY
122+
terraform show tfplan | sed -n '1,300p' >> $GITHUB_STEP_SUMMARY
123+
echo '```' >> $GITHUB_STEP_SUMMARY
124+
echo "</details>" >> $GITHUB_STEP_SUMMARY
125+
fi
126+
123127
124128
# ✅ Plan 성공 알림
125129
- name: Send Discord Notification (Plan Success)
126-
if: always() && job.status == 'success'
130+
if: steps.tfplan.outcome == 'success'
127131
env:
128132
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
129133
run: |
130134
if [ -n "$DISCORD_WEBHOOK_URL" ]; then
135+
THREAD_NAME="[sandbox] Terraform Plan 성공"
131136
APPLY_URL="${{ github.server_url }}/${{ github.repository }}/actions/workflows/terraform-apply-sandbox.yml"
132-
MESSAGE="**Terraform Plan (sandbox) 완료**\n\n- Branch: sandbox\n- Commit: ${{ github.sha }}\n\n👉 Apply 실행\n${APPLY_URL}"
137+
RUN_URL="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
138+
MESSAGE="**Terraform Plan (sandbox) 완료**\n\n- Branch: sandbox\n- Commit: ${{ github.sha }}\n\n📄 Workflow\n${RUN_URL}\n\n👉 Apply 실행\n${APPLY_URL}"
133139
curl -X POST "$DISCORD_WEBHOOK_URL" \
134140
-H "Content-Type: application/json" \
135-
-d "{\"content\": \"$MESSAGE\"}"
141+
-d "{\"content\": \"$MESSAGE\", \"thread_name\": \"$THREAD_NAME\"}"
136142
fi
137143
138144
# ❌ Plan 실패 알림
139145
- name: Send Discord Notification (Plan Failure)
140-
if: always() && job.status == 'failure'
146+
if: steps.tfplan.outcome == 'failure'
141147
env:
142148
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
143149
run: |
144150
if [ -n "$DISCORD_WEBHOOK_URL" ]; then
145-
MESSAGE="❌ **Terraform Plan (sandbox) 실패**\n\n- Commit: ${{ github.sha }}"
151+
THREAD_NAME="❌ [sandbox] Terraform Plan 실패"
152+
RUN_URL="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
153+
MESSAGE="❌ **Terraform Plan (sandbox) 실패**\n\n- Branch: sandbox\n- Commit: ${{ github.sha }}\n\n📄 Workflow\n${RUN_URL}"
146154
curl -X POST "$DISCORD_WEBHOOK_URL" \
147155
-H "Content-Type: application/json" \
148-
-d "{\"content\": \"$MESSAGE\"}"
156+
-d "{\"content\": \"$MESSAGE\", \"thread_name\": \"$THREAD_NAME\"}"
149157
fi

0 commit comments

Comments
 (0)