Files
cleanup-docker/action.yml

43 lines
1.5 KiB
YAML

name: 'CLEANUP DOCKER'
description: '清理 Docker 沒用到的資源'
author: 'Jeffery'
inputs:
DISK_USAGE_THRESHOLD:
description: '磁碟使用量閾值'
default: '80'
runs:
using: 'composite'
env:
DISK_USAGE_THRESHOLD: ${{ inputs.DISK_USAGE_THRESHOLD }}
steps:
- name: 取得磁碟使用率
id: disk
run: |
echo "=================================================="
echo "參數檢查"
echo "--------------------------------------------------"
# 顯示 DISK_USAGE_THRESHOLD 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出
echo "DISK_USAGE_THRESHOLD=$DISK_USAGE_THRESHOLD" && ([ -z "$DISK_USAGE_THRESHOLD" ] || [ "$DISK_USAGE_THRESHOLD" = "null" ]) && DISK_USAGE_THRESHOLD='80'
echo "=================================================="
echo "取得硬碟使用率"
echo "--------------------------------------------------"
# 取得硬碟使用率
USAGE=$(df / | awk 'NR==2{print $5}' | tr -d '%') && echo "磁碟使用率:${USAGE}%"
# 檢查是否需要清理 Docker 資源
if [ "$USAGE" -gt "$DISK_USAGE_THRESHOLD" ]; then
echo "should_prune=true" >> $GITHUB_OUTPUT
else
echo "使用率為 ${USAGE}%,低於閾值,跳過清理"
echo "should_prune=false" >> $GITHUB_OUTPUT
fi
- name: 清理 Docker 資源
if: steps.disk.outputs.should_prune == 'true'
run: docker system prune -af --volumes