mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-06-14 18:39:54 +08:00
🐛 fix(ci): 修复 dev CI 漏掉驱动补偿构建
- dev 构建改为优先使用已发布 driver release 对应源码提交作为检测基线 - 避免驱动相关提交的 CI 失败后,后续仅修 workflow 时被误判为无需重建驱动 - 当已发布驱动基线无法解析时,保守回退为全量驱动构建 - 补充驱动变更检测补偿场景回归测试 - 新增 driver release source 解析测试,覆盖 release body 与 target_commitish 场景
This commit is contained in:
32
.github/workflows/dev-build.yml
vendored
32
.github/workflows/dev-build.yml
vendored
@@ -76,19 +76,41 @@ jobs:
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Resolve published driver release source
|
||||
id: published_source
|
||||
env:
|
||||
DRIVER_RELEASE_TOKEN: ${{ secrets.DRIVER_RELEASE_TOKEN }}
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
SOURCE_COMMIT="$(python3 tools/resolve-driver-release-source.py --repo Syngnat/GoNavi-DriverAgents --tag dev-latest)"
|
||||
echo "source_commit=${SOURCE_COMMIT}" >> "$GITHUB_OUTPUT"
|
||||
if [[ -n "$SOURCE_COMMIT" ]]; then
|
||||
echo "🧭 Last published dev driver release source commit: $SOURCE_COMMIT"
|
||||
else
|
||||
echo "🧭 Unable to resolve published dev driver release source commit; fallback to push diff base"
|
||||
fi
|
||||
|
||||
- name: Detect changed driver agents
|
||||
id: detect
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
BASE_REF="${{ github.event.before }}"
|
||||
if [[ -z "$BASE_REF" || "$BASE_REF" =~ ^0+$ ]]; then
|
||||
if BASE_REF="$(git rev-parse HEAD^ 2>/dev/null)"; then
|
||||
:
|
||||
BASE_REF="${{ steps.published_source.outputs.source_commit }}"
|
||||
if [[ -n "$BASE_REF" ]]; then
|
||||
if git rev-parse --verify "${BASE_REF}^{commit}" >/dev/null 2>&1 && git merge-base --is-ancestor "$BASE_REF" "$GITHUB_SHA"; then
|
||||
echo "🧭 Using last published driver release source commit as detection base: $BASE_REF"
|
||||
else
|
||||
BASE_REF="all"
|
||||
echo "⚠️ Published driver release source commit is unavailable or not an ancestor of $GITHUB_SHA: $BASE_REF"
|
||||
BASE_REF=""
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -z "$BASE_REF" ]]; then
|
||||
echo "⚠️ Falling back to full driver rebuild because published driver release source commit is unavailable"
|
||||
BASE_REF="all"
|
||||
fi
|
||||
echo "🧭 Final driver detection base: $BASE_REF"
|
||||
DRIVERS="$(bash ./tools/detect-changed-driver-agents.sh --base "$BASE_REF" --head "$GITHUB_SHA")"
|
||||
echo "drivers=${DRIVERS}" >> "$GITHUB_OUTPUT"
|
||||
if [ -n "$DRIVERS" ]; then
|
||||
|
||||
Reference in New Issue
Block a user