@@ -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