fix(workflow): 处理删除ESA代码版本时的错误情况

改进删除流程以处理版本正在使用中的情况,避免因特定错误导致工作流失败。当版本无法删除时,区分可跳过的错误(CodeVersionInUse)和其他需要终止的错误。
This commit is contained in:
二叉树树
2026-01-09 13:22:23 +08:00
parent ea073b4988
commit b6d05ee6e3

View File

@@ -76,15 +76,22 @@ jobs:
DELETED_COUNT=0
for VERSION in $VERSIONS_TO_DELETE; do
echo "正在删除版本: $VERSION"
DELETE_RESULT=$(aliyun esa DeleteRoutineCodeVersion --region cn-hangzhou --Name $PAGES_NAME --CodeVersion $VERSION)
STATUS=$(echo $DELETE_RESULT | jq -r '.Status')
set +e # 临时关闭错误检查,允许命令失败
DELETE_RESULT=$(aliyun esa DeleteRoutineCodeVersion --region cn-hangzhou --Name $PAGES_NAME --CodeVersion $VERSION 2>&1)
EXIT_CODE=$?
set -e # 恢复错误检查
if [ "$STATUS" = "OK" ]; then
if [ $EXIT_CODE -eq 0 ]; then
echo "版本 $VERSION 删除成功"
DELETED_COUNT=$((DELETED_COUNT + 1))
else
echo "版本 $VERSION 删除失败: $DELETE_RESULT"
exit 1
# 检查是否因为版本正在使用中而失败
if echo "$DELETE_RESULT" | grep -q "CodeVersionInUse"; then
echo "⚠️ 版本 $VERSION 正在使用中,无法删除 (CodeVersionInUse),跳过此版本"
else
echo "❌ 版本 $VERSION 删除失败: $DELETE_RESULT"
exit 1
fi
fi
done