mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-22 16:43:35 +00:00
fix: 修复 GitHub Actions 版本检测对合并提交的处理
问题: - 之前的版本检测逻辑使用 HEAD~1..HEAD 只能获取直接的父提交变更 - 对于合并提交,这会导致忽略所有合并进来的实际代码变更 - 导致明明有重要代码更新却显示 "No significant changes" 解决方案: - 添加合并提交检测逻辑 - 对于合并提交,获取从合并基准点到 HEAD 的所有变更 - 确保所有合并进来的文件变更都被正确检测 这样可以确保版本自动发布工作流正确识别所有代码变更。 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
22
.github/workflows/auto-release-pipeline.yml
vendored
22
.github/workflows/auto-release-pipeline.yml
vendored
@@ -24,8 +24,28 @@ jobs:
|
||||
- name: Check if version bump is needed
|
||||
id: check
|
||||
run: |
|
||||
# 获取当前提交的文件变更
|
||||
# 检测是否是合并提交
|
||||
PARENT_COUNT=$(git rev-list --parents -n 1 HEAD | wc -w)
|
||||
PARENT_COUNT=$((PARENT_COUNT - 1))
|
||||
echo "Parent count: $PARENT_COUNT"
|
||||
|
||||
if [ "$PARENT_COUNT" -gt 1 ]; then
|
||||
# 合并提交:获取合并进来的所有文件变更
|
||||
echo "Detected merge commit, getting all merged changes"
|
||||
# 获取合并基准点
|
||||
MERGE_BASE=$(git merge-base HEAD^1 HEAD^2 2>/dev/null || echo "")
|
||||
if [ -n "$MERGE_BASE" ]; then
|
||||
# 获取从合并基准到 HEAD 的所有变更
|
||||
CHANGED_FILES=$(git diff --name-only $MERGE_BASE..HEAD)
|
||||
else
|
||||
# 如果无法获取合并基准,使用第二个父提交
|
||||
CHANGED_FILES=$(git diff --name-only HEAD^2..HEAD)
|
||||
fi
|
||||
else
|
||||
# 普通提交:获取相对于上一个提交的变更
|
||||
CHANGED_FILES=$(git diff --name-only HEAD~1..HEAD 2>/dev/null || git diff --name-only $(git rev-list --max-parents=0 HEAD)..HEAD)
|
||||
fi
|
||||
|
||||
echo "Changed files:"
|
||||
echo "$CHANGED_FILES"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user