@@ -247,35 +247,53 @@ runs:
247247
248248 - name : Summary
249249 if : always() && inputs.show_summary == 'true'
250+ continue-on-error : true
250251 shell : bash
252+ env :
253+ LIMIT : ${{ inputs.summary_limit }}
254+ OUTCOME : ${{ steps.sync.outcome }}
255+ BUCKET : ${{ inputs.bucket_name }}
256+ SOURCE_DIR : ${{ inputs.source_dir }}
257+ S3_URL : ${{ steps.url.outputs.s3_url }}
258+ AWS_REGION : ${{ inputs.aws_region }}
259+ DELETE_REMOVED : ${{ inputs.delete_removed }}
260+ CACHE_CONTROL : ${{ inputs.cache_control }}
261+ CT_DETECTION : ${{ inputs.content_type_detection }}
262+ EXCLUDES : ${{ inputs.exclude_patterns }}
263+ FILES_UPLOADED : ${{ steps.sync.outputs.files_uploaded }}
264+ FILES_DELETED : ${{ steps.sync.outputs.files_deleted }}
265+ FILE_COUNT : ${{ steps.analyze.outputs.file_count }}
266+ TOTAL_SIZE : ${{ steps.analyze.outputs.total_size }}
267+ SYNC_DURATION : ${{ steps.sync.outputs.sync_duration }}
251268 run : |
252- set -euo pipefail
269+ set -eo pipefail
270+ [[ "$LIMIT" =~ ^[0-9]+$ ]] || LIMIT=250
253271
254- OUTCOME="${{ steps.sync.outcome }}"
255- STATUS_ICON="❌"; [[ "$OUTCOME" == "success" ]] && STATUS_ICON="✅"
256- BYTES="${{ steps.analyze.outputs.total_size || 0 }}"
257- MB=$(awk "BEGIN {printf \"%.2f\", (${BYTES})/1024/1024}")
272+ STATUS_ICON="❌"
273+ [ "${OUTCOME:-failure}" = "success" ] && STATUS_ICON="✅"
258274
259- LIMIT="${{ inputs.summary_limit }}"
260- [[ "$LIMIT" =~ ^[0-9]+$ ]] || LIMIT="250"
275+ BYTES="${TOTAL_SIZE:-0}"
276+ if [[ -z "$BYTES" || ! "$BYTES" =~ ^[0-9]+$ ]]; then BYTES=0; fi
277+ MB=$(awk "BEGIN {printf \"%.2f\", ($BYTES)/1024/1024}")
261278
262279 {
263280 echo "## ☁️ S3 Sync ${STATUS_ICON}"
264- echo "- **Bucket:** \`${{ inputs.bucket_name }}\`"
265- echo "- **Source:** \`${{ inputs.source_dir }}\`"
266- echo "- **Target:** \`${{ steps.url.outputs.s3_url }}\`"
267- echo "- **Region:** \`${{ inputs.aws_region }}\`"
268- echo "- **Delete removed:** \`${{ inputs.delete_removed }}\`"
269- echo "- **Cache-Control:** \`${{ inputs.cache_control || 'N/A' }}\`"
270- echo "- **Content-Type detection:** \`${{ inputs.content_type_detection }}\`"
271- echo "- **Excludes:** \`${{ inputs.exclude_patterns }}\`"
272- if [[ "$OUTCOME" == "success" ]]; then
273- echo "- **Files uploaded:** \`${{ steps.sync.outputs.files_uploaded || '0' }}\`"
274- echo "- **Files deleted:** \`${{ steps.sync.outputs.files_deleted || '0' }}\`"
275- echo "- **Total files:** \`${{ steps.analyze.outputs.file_count || '0' }}\`"
281+ echo "- **Bucket:** \`${BUCKET:-}\`"
282+ echo "- **Source:** \`${SOURCE_DIR:-}\`"
283+ echo "- **Target:** \`${S3_URL:-}\`"
284+ echo "- **Region:** \`${AWS_REGION:-}\`"
285+ echo "- **Delete removed:** \`${DELETE_REMOVED:-false}\`"
286+ echo "- **Cache-Control:** \`${CACHE_CONTROL:-N/A}\`"
287+ echo "- **Content-Type detection:** \`${CT_DETECTION:-true}\`"
288+ echo "- **Excludes:** \`${EXCLUDES:-}\`"
289+
290+ if [ "${OUTCOME:-failure}" = "success" ]; then
291+ echo "- **Files uploaded:** \`${FILES_UPLOADED:-0}\`"
292+ echo "- **Files deleted:** \`${FILES_DELETED:-0}\`"
293+ echo "- **Total files:** \`${FILE_COUNT:-0}\`"
276294 echo "- **Total size:** \`${BYTES}\` bytes (~${MB} MiB)"
277- echo "- **Sync duration:** \`${{ steps.sync.outputs.sync_duration || ' N/A' } }\` seconds"
295+ echo "- **Sync duration:** \`${SYNC_DURATION:- N/A}\` seconds"
278296 else
279- echo "- **Status:** Sync failed — check logs above "
297+ echo "- **Status:** Sync failed — check logs for details "
280298 fi
281- } >> "$GITHUB_STEP_SUMMARY"
299+ } >> "${ GITHUB_STEP_SUMMARY:-/dev/null}" || true
0 commit comments