From b6d05ee6e3d046bf7d20f731bb8c4e0bd657e925 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E5=8F=89=E6=A0=91=E6=A0=91?= Date: Fri, 9 Jan 2026 13:22:23 +0800 Subject: [PATCH] =?UTF-8?q?fix(workflow):=20=E5=A4=84=E7=90=86=E5=88=A0?= =?UTF-8?q?=E9=99=A4ESA=E4=BB=A3=E7=A0=81=E7=89=88=E6=9C=AC=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E9=94=99=E8=AF=AF=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 改进删除流程以处理版本正在使用中的情况,避免因特定错误导致工作流失败。当版本无法删除时,区分可跳过的错误(CodeVersionInUse)和其他需要终止的错误。 --- .github/workflows/del-esa-code.yml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/workflows/del-esa-code.yml b/.github/workflows/del-esa-code.yml index dd30c1f62..d3324fda9 100644 --- a/.github/workflows/del-esa-code.yml +++ b/.github/workflows/del-esa-code.yml @@ -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