From e71d9d01fdbbd19c24dcf57382ec52fb42e228be Mon Sep 17 00:00:00 2001 From: csh Date: Mon, 3 Nov 2025 14:08:57 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E4=BF=AE=E5=A4=8D=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E8=BD=AC=E4=B9=89=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/changelog_and_release.yml | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.gitea/workflows/changelog_and_release.yml b/.gitea/workflows/changelog_and_release.yml index 4666c86..1599b78 100644 --- a/.gitea/workflows/changelog_and_release.yml +++ b/.gitea/workflows/changelog_and_release.yml @@ -182,17 +182,23 @@ jobs: PRERELEASE_DETECTED="${{ env.RELEASE_PRERELEASE_MODE }} (manually configured)" fi - # 处理忽略模式(转换为数组) + # 处理忽略模式(去除空格,保持管道分隔格式) + echo "🔧 处理忽略模式..." + PROCESSED_PATTERNS="" IFS='|' read -ra PATTERNS_ARRAY <<< "${{ env.IGNORE_PATTERNS }}" - IGNORE_JSON="[" + for pattern in "${PATTERNS_ARRAY[@]}"; do - # 去除首尾空格 - pattern=$(echo "$pattern" | xargs) + # 使用 sed 去除首尾空格,保留转义字符 + pattern=$(echo "$pattern" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') if [ -n "$pattern" ]; then - IGNORE_JSON="${IGNORE_JSON}\"${pattern}\"," + if [ -z "$PROCESSED_PATTERNS" ]; then + PROCESSED_PATTERNS="$pattern" + else + PROCESSED_PATTERNS="$PROCESSED_PATTERNS|$pattern" + fi fi done - IGNORE_JSON="${IGNORE_JSON%,}]" + echo "✅ 已处理 $(echo "$PROCESSED_PATTERNS" | grep -o '|' | wc -l | awk '{print $1+1}') 个忽略模式" # 导出处理后的配置到 GitHub 环境变量 echo "CHANGELOG_VERSION=$CHANGELOG_VERSION" >> $GITHUB_ENV @@ -203,7 +209,7 @@ jobs: echo "PRERELEASE_STRIP_REGEX=$STRIP_REGEX" >> $GITHUB_ENV echo "PRERELEASE_MATCH_REGEX=$MATCH_REGEX" >> $GITHUB_ENV - echo "IGNORE_PATTERNS_JSON=$IGNORE_JSON" >> $GITHUB_ENV + echo "IGNORE_PATTERNS_PROCESSED=$PROCESSED_PATTERNS" >> $GITHUB_ENV # 显示配置摘要 echo "" @@ -449,13 +455,7 @@ jobs: declare -a COMMITS_BODY # 从环境变量加载忽略模式 (转换为 bash 数组) - IFS='|' read -ra IGNORE_PATTERNS <<< "${{ env.IGNORE_PATTERNS }}" - - # 去除每个模式的首尾空格 - for i in "${!IGNORE_PATTERNS[@]}"; do - IGNORE_PATTERNS[$i]=$(echo "${IGNORE_PATTERNS[$i]}" | xargs) - done - + IFS='|' read -ra IGNORE_PATTERNS <<< "${{ env.IGNORE_PATTERNS_PROCESSED }}" echo "📋 已加载 ${#IGNORE_PATTERNS[@]} 个忽略模式" COMMIT_INDEX=0