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