Skip to content

Commit b2d52f8

Browse files
committed
fix null file delete error
1 parent 6ca4679 commit b2d52f8

File tree

1 file changed

+25
-9
lines changed

1 file changed

+25
-9
lines changed

.github/workflows/auto-assign-reviewers.yml

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -88,18 +88,34 @@ jobs:
8888
- name: Generate reviewers list
8989
id: generate_reviewers
9090
run: |
91-
# 根据变更文件路径匹配维护者规则
92-
rm -f triggered_reviewers.txt
93-
rm -f triggered_tags.txt
91+
# 删除旧文件并初始化空文件
92+
rm -f triggered_reviewers.txt triggered_tags.txt
93+
touch triggered_reviewers.txt triggered_tags.txt # 确保文件存在
94+
95+
# 匹配路径并追加维护者信息
9496
while IFS='|' read -r tag path reviewers; do
95-
# 使用正则匹配路径(支持子目录)
96-
if grep -qE "^$path(/|$)" changed_files.txt; then
97-
echo "$reviewers" | tr ' ' '\n' >> triggered_reviewers.txt
98-
echo "$tag" | tr ' ' '\n' >> triggered_tags.txt
97+
# 转义路径中的正则特殊字符
98+
escaped_path=$(sed 's/[.[\*^$]/\\&/g' <<< "$path")
99+
# 精确匹配路径及其子路径
100+
if grep -qxE "$escaped_path(/.*)?" changed_files.txt; then
101+
# 清理空格并移除空行后追加到文件
102+
echo "$reviewers" | tr -s ' ' '\n' | sed '/^$/d' >> triggered_reviewers.txt
103+
echo "$tag" >> triggered_tags.txt
99104
fi
100105
done < tag_data.csv
101-
awk 'NF && !seen[$0]++' triggered_reviewers.txt > unique_reviewers.txt
102-
awk 'NF && !seen[$0]++' triggered_tags.txt > unique_tags.txt
106+
107+
# 处理去重前检查文件是否有内容
108+
if [[ -s triggered_reviewers.txt ]]; then
109+
awk 'NF && !seen[$0]++' triggered_reviewers.txt > unique_reviewers.txt
110+
else
111+
echo "No reviewers matched." > unique_reviewers.txt # 生成占位文件
112+
fi
113+
114+
if [[ -s triggered_tags.txt ]]; then
115+
awk 'NF && !seen[$0]++' triggered_tags.txt > unique_tags.txt
116+
else
117+
echo "No tags matched." > unique_tags.txt # 生成占位文件
118+
fi
103119
- name: Restore Reviewers Cache
104120
id: reviewers-cache-restore
105121
if: ${{ steps.changed_files.outputs.COMMENT_TIME != '' }}

0 commit comments

Comments
 (0)