23 Commits

Author SHA1 Message Date
075bc62138 Merge pull request 'feat: 刪除失敗,不要讓任務成功' (#21) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 3s
Reviewed-on: #21
2025-12-01 07:13:12 +00:00
Jeffery
9cf1a7a974 feat: 刪除失敗,不要讓任務成功 2025-12-01 15:13:00 +08:00
4a2c9d6064 Merge pull request 'feat: 移除多餘的變數' (#20) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 3s
Reviewed-on: #20
2025-12-01 06:53:34 +00:00
Jeffery
f6d27ed523 feat: 移除多餘的變數 2025-12-01 14:53:06 +08:00
17721ae9d0 Merge pull request 'feat: 優化程序' (#19) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 3s
Reviewed-on: #19
2025-12-01 06:35:58 +00:00
9929c05469 Merge pull request 'feat: 修正刪除的 API' (#18) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 3s
Reviewed-on: #18
2025-12-01 06:12:01 +00:00
a078f2d984 Merge pull request 'fix: 修正 get 的 api 解析' (#17) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 2s
Reviewed-on: #17
2025-12-01 06:03:47 +00:00
9068f5e5b6 Merge pull request 'Revert "feat: 修改指令執行格式"' (#16) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 2s
Reviewed-on: #16
2025-12-01 05:38:45 +00:00
e40a7adad6 Merge pull request 'feat: 修改指令執行格式' (#15) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 3s
Reviewed-on: #15
2025-12-01 04:00:18 +00:00
214ec5f7bd Merge pull request 'feat: 修正 if 語法' (#14) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 2s
Reviewed-on: #14
2025-12-01 03:58:53 +00:00
829c119657 Merge pull request 'feat: 改為 script 執行' (#13) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 3s
Reviewed-on: #13
2025-12-01 03:57:05 +00:00
2ac7efe907 Merge pull request 'feat: 改為 script 執行' (#12) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 2s
Reviewed-on: #12
2025-12-01 03:43:23 +00:00
74e3e758c9 Merge pull request 'fix: 修正 jq 指令' (#11) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 3s
Reviewed-on: #11
2025-12-01 03:39:07 +00:00
3e32b71abe Merge pull request 'fix: 修正 jq 指令' (#10) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 2s
Reviewed-on: #10
2025-12-01 03:37:45 +00:00
a8eaa2a293 Merge pull request 'fix: 調整指令參數' (#9) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 2s
Reviewed-on: #9
2025-12-01 03:15:11 +00:00
f6925cc5e7 Merge pull request 'fix: 排除實際刪除數量為空的問題' (#8) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 3s
Reviewed-on: #8
2025-12-01 03:04:22 +00:00
2daf39673a Merge pull request 'feat: 如果沒有 package-name 套過任務' (#7) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 2s
Reviewed-on: #7
2025-12-01 03:02:30 +00:00
f3afba6e49 Merge pull request 'fix: 移除參數輸出' (#6) from develop into master
Some checks failed
/ CD > 發布專案 (push) Failing after 2s
Reviewed-on: #6
2025-12-01 02:56:52 +00:00
c5b69ac380 Merge pull request 'feat: 移除 if 判斷' (#5) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 2s
Reviewed-on: #5
2025-12-01 02:45:21 +00:00
963fa24ce0 Merge pull request 'fix: 修正錯誤' (#4) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 2s
Reviewed-on: #4
2025-12-01 02:37:18 +00:00
93402e99ee Merge pull request 'fix: 修正錯誤' (#3) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 3s
Reviewed-on: #3
2025-12-01 02:26:32 +00:00
ac72d18016 Merge pull request 'fix: 修正錯誤' (#2) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 3s
Reviewed-on: #2
2025-12-01 02:21:20 +00:00
70cac9e740 Merge pull request 'feat: 清理舊映像' (#1) from develop into master
All checks were successful
/ CD > 發布專案 (push) Successful in 3s
Reviewed-on: #1
2025-12-01 02:06:52 +00:00
2 changed files with 20 additions and 13 deletions

View File

@@ -64,9 +64,9 @@ echo "需要刪除 $DELETE_COUNT 個舊映像"
# 獲取要刪除的版本 (跳過前 keep-count 個) # 獲取要刪除的版本 (跳過前 keep-count 個)
TO_DELETE=$(echo "$SORTED_VERSIONS" | jq -c ".[$KEEP_COUNT:][]") TO_DELETE=$(echo "$SORTED_VERSIONS" | jq -c ".[$KEEP_COUNT:][]")
# 初始化刪除計數器和列表 # 初始化刪除計數器
DELETED_COUNT=0 DELETED_COUNT=0
declare -a DELETED_VERSIONS FAILED_COUNT=0
# 處理每個要刪除的版本 # 處理每個要刪除的版本
while IFS= read -r version; do while IFS= read -r version; do
@@ -87,7 +87,6 @@ while IFS= read -r version; do
if [[ "$DRY_RUN" == "true" ]]; then if [[ "$DRY_RUN" == "true" ]]; then
echo "🔍 [模擬執行] 會刪除映像版本: $VERSION_NAME (ID: $VERSION_ID)" echo "🔍 [模擬執行] 會刪除映像版本: $VERSION_NAME (ID: $VERSION_ID)"
DELETED_COUNT=$((DELETED_COUNT + 1)) DELETED_COUNT=$((DELETED_COUNT + 1))
DELETED_VERSIONS+=("$VERSION_NAME")
else else
# 實際刪除 # 實際刪除
DELETE_RESPONSE=$(curl -s -w "\nHTTP_STATUS:%{http_code}" \ DELETE_RESPONSE=$(curl -s -w "\nHTTP_STATUS:%{http_code}" \
@@ -99,28 +98,28 @@ while IFS= read -r version; do
if [[ "$DELETE_HTTP_STATUS" == "204" ]] || [[ "$DELETE_HTTP_STATUS" == "200" ]]; then if [[ "$DELETE_HTTP_STATUS" == "204" ]] || [[ "$DELETE_HTTP_STATUS" == "200" ]]; then
echo "✅ 成功刪除映像版本: $VERSION_NAME (ID: $VERSION_ID)" echo "✅ 成功刪除映像版本: $VERSION_NAME (ID: $VERSION_ID)"
DELETED_COUNT=$((DELETED_COUNT + 1)) DELETED_COUNT=$((DELETED_COUNT + 1))
DELETED_VERSIONS+=("$VERSION_NAME")
else else
echo "❌ 刪除失敗映像版本: $VERSION_NAME (ID: $VERSION_ID), HTTP狀態: $DELETE_HTTP_STATUS" echo "❌ 刪除失敗映像版本: $VERSION_NAME (ID: $VERSION_ID), HTTP狀態: $DELETE_HTTP_STATUS"
FAILED_COUNT=$((FAILED_COUNT + 1))
fi fi
fi fi
done <<< "$TO_DELETE" done <<< "$TO_DELETE"
# 檢查是否有刪除失敗的情況
if [[ $FAILED_COUNT -gt 0 ]]; then
echo ""
echo "❌ 錯誤:有 $FAILED_COUNT 個映像版本刪除失敗"
exit 1
fi
# 輸出最終結果 # 輸出最終結果
echo "" echo ""
echo "=========================================" echo "========================================="
if [[ "$DRY_RUN" == "true" ]]; then if [[ "$DRY_RUN" == "true" ]]; then
echo "🔍 [模擬執行] 總共會刪除 $DELETED_COUNT 個映像版本" echo "🔍 [模擬執行] 總共會刪除 $DELETED_COUNT 個映像版本"
if [[ ${#DELETED_VERSIONS[@]} -gt 0 ]]; then echo "✅ 模擬執行完成"
echo "待刪除版本列表:"
printf ' - %s\n' "${DELETED_VERSIONS[@]}"
fi
else else
echo "✅ 清理完成,成功刪除了 $DELETED_COUNT 個映像版本" echo "✅ 清理完成,成功刪除了 $DELETED_COUNT 個映像版本"
if [[ ${#DELETED_VERSIONS[@]} -gt 0 ]]; then
echo "已刪除版本列表:"
printf ' - %s\n' "${DELETED_VERSIONS[@]}"
fi
# 驗證結果 # 驗證結果
if [[ $DELETED_COUNT -gt 0 ]]; then if [[ $DELETED_COUNT -gt 0 ]]; then
@@ -129,7 +128,7 @@ else
VERIFY_JSON=$(curl -s "$GITEA_SERVER/api/v1/packages/$OWNER/container/$PACKAGE_NAME?token=$TOKEN" \ VERIFY_JSON=$(curl -s "$GITEA_SERVER/api/v1/packages/$OWNER/container/$PACKAGE_NAME?token=$TOKEN" \
-H "Accept: application/json") -H "Accept: application/json")
NEW_TOTAL_COUNT=$(echo "$VERIFY_JSON" | jq 'length') NEW_TOTAL_COUNT=$(echo "$VERIFY_JSON" | jq 'length')
echo "目前剩餘 $NEW_TOTAL_COUNT 個映像版本(預期: $KEEP_COUNT" echo "📊 目前剩餘 $NEW_TOTAL_COUNT 個映像版本(預期: $KEEP_COUNT"
fi fi
fi fi
echo "=========================================" echo "========================================="

View File

@@ -89,10 +89,18 @@ echo "$TO_DELETE" | jq -c '.[]' | while IFS= read -r release; do
echo "✅ 成功刪除發佈: $RELEASE_TAG ($RELEASE_NAME)" echo "✅ 成功刪除發佈: $RELEASE_TAG ($RELEASE_NAME)"
else else
echo "❌ 刪除失敗發佈: $RELEASE_TAG ($RELEASE_NAME), HTTP 狀態: $HTTP_STATUS" echo "❌ 刪除失敗發佈: $RELEASE_TAG ($RELEASE_NAME), HTTP 狀態: $HTTP_STATUS"
FAILED_COUNT=$((FAILED_COUNT + 1))
fi fi
fi fi
done done
# 檢查是否有刪除失敗的情況
if [[ $FAILED_COUNT -gt 0 ]]; then
echo ""
echo "❌ 錯誤:有 $FAILED_COUNT 個發佈刪除失敗"
exit 1
fi
# 輸出最終結果 # 輸出最終結果
if [[ "$DRY_RUN" == "true" ]]; then if [[ "$DRY_RUN" == "true" ]]; then
echo "" echo ""