@@ -33,6 +33,15 @@ inputs:
3333 required : false
3434 default : ' false'
3535
36+ show_summary :
37+ description : ' Print summary in the job summary'
38+ required : false
39+ default : ' true'
40+ summary_limit :
41+ description : ' Max number of lines (paths) to show in summary'
42+ required : false
43+ default : ' 250'
44+
3645outputs :
3746 invalidation_id :
3847 description : ' ID of the created invalidation'
@@ -137,8 +146,8 @@ runs:
137146 ID=$(echo "$RESP" | jq -r '.Invalidation.Id')
138147 STATUS=$(echo "$RESP" | jq -r '.Invalidation.Status')
139148
140- echo "invalidation_id=$ID" >> "$GITHUB_OUTPUT"
141- echo "status=$STATUS" >> "$GITHUB_OUTPUT"
149+ echo "invalidation_id=$ID" >> "$GITHUB_OUTPUT"
150+ echo "status=$STATUS" >> "$GITHUB_OUTPUT"
142151 echo "caller_reference=$CALLER_REF" >> "$GITHUB_OUTPUT"
143152
144153 echo "✅ Invalidation created: $ID (status: $STATUS)"
@@ -177,27 +186,53 @@ runs:
177186 fi
178187
179188 - name : Summary
180- if : always()
189+ if : always() && inputs.show_summary == 'true'
181190 shell : bash
182191 run : |
183192 set -euo pipefail
184193
185194 STATUS_ICON="❌"
186- [[ "${{ steps.invalidate.outputs.invalidation_id }}" != " " ]] && STATUS_ICON="✅"
195+ [[ -n "${{ steps.invalidate.outputs.invalidation_id }}" ]] && STATUS_ICON="✅"
187196
197+ DIST="${{ inputs.distribution_id }}"
188198 ID="${{ steps.invalidate.outputs.invalidation_id }}"
189- CF_LINK="https://console.aws.amazon.com/cloudfront/v4/home#/distributions/${DIST}/invalidations/${ID}"
199+ CF_LINK=""
200+ if [[ -n "$DIST" && -n "$ID" ]]; then
201+ CF_LINK="https://console.aws.amazon.com/cloudfront/v4/home#/distributions/${DIST}/invalidations/${ID}"
202+ fi
203+
204+ LIMIT="${{ inputs.summary_limit }}"
205+ [[ "$LIMIT" =~ ^[0-9]+$ ]] || LIMIT="250"
206+
207+ PATHS_RAW="${{ inputs.paths }}"
208+ mapfile -t P_ARR < <(printf '%s\n' $PATHS_RAW)
209+ TOTAL="${#P_ARR[@]}"
210+ SHOW="$LIMIT"; (( TOTAL < LIMIT )) && SHOW="$TOTAL"
190211
191212 {
192213 echo "## 📊 CloudFront Invalidation ${STATUS_ICON}"
193214 echo "- **Invalidation ID:** \`${ID:-N/A}\`"
194215 echo "- **Status:** \`${{ steps.invalidate.outputs.status || 'N/A' }}\`"
195- echo "- **Paths:** \`${{ inputs.paths }}\`"
196216 echo "- **CallerReference:** \`${{ steps.invalidate.outputs.caller_reference || 'auto' }}\`"
197- if [[ -n "$ID" ]]; then
217+ echo "- **Distribution:** \`${DIST}\`"
218+ if [[ -n "$CF_LINK" ]]; then
198219 echo "- **Console:** ${CF_LINK}"
199220 fi
200221
222+ echo ""
223+ if (( TOTAL > 0 )); then
224+ if (( TOTAL <= LIMIT )); then
225+ echo "### Paths"
226+ else
227+ echo "### Paths (first ${LIMIT} of ${TOTAL})"
228+ fi
229+ echo '```'
230+ for ((i=0;i<SHOW;i++)); do
231+ printf '%s\n' "${P_ARR[i]}"
232+ done
233+ echo '```'
234+ fi
235+
201236 echo ""
202237 if [[ "${{ inputs.wait_for_completion }}" == "true" ]]; then
203238 echo "⏱️ Waited for completion: **true**"
0 commit comments