Skip to content

3 个 L1 套件(test686/765/766)不在 qa.yml 的 paths 里:改它们不会触发跑它们的门 #860

Description

@vansin

现状:3 个 L1 套件改了不会触发跑它们的那道门

scripts/qa.shL1_TESTS 有 17 个套件,由 qa.ymlqa job 执行。
把这 17 个逐个与 qa.ymlpaths: 过滤比对:

套件 paths 覆盖
qa-cli-01qa-node-03b(13 个) ✅ 被 tests/qa-*/** 覆盖
test746-setup-bun-pin ✅ paths 里显式列了
test686-rest-shape-golden
test765-batch-runtime-gate
test766-bunx-preflight

qa.ymlpaths: 原文(origin/main):

pull_request.paths:
  server/**
  agent-network/**
  agent-node/**
  tests/qa-*/**
  scripts/qa.sh
  docs/qa/**
  .github/workflows/qa.yml
  tests/test725-agent-node-unit-ci/**
  tests/test745-agent-network-unit-ci/**
  tests/test746-setup-bun-pin/**

显式列了 test725 / test745 / test746,唯独漏了这三个;也没有 tests/** 这类兜底。

没有别的 workflow 兜底

$ git grep -c 'test686\|test765\|test766' origin/main -- '.github/**'
(三个都是 0 个文件命中)

全部 workflow 里提到 qa.sh 或这三个套件的:只有 .github/workflows/qa.yml

所以这三个套件在整个 CI 配置里没有被任何 paths 提及过

后果

一个只改 tests/test686-rest-shape-golden/**(或 765 / 766)的 PR,
不会触发 qa.yml —— 跑它们的那道门根本不启动。把这三个门本身改坏、
改成永远通过、甚至删掉它们的断言,PR 都会全绿,要等别的改动顺带触发才暴露。

对照:test725 / test745 有自己的 Docker job 并且在 paths 里,不存在这个问题。

这是同一形状的第三例

共同点是**「在一处注册,在另一处忘了登记」**,而两处之间没有任何机制保证同步。
#835 那次的修法是把成因去掉(逐套件白名单 → 按套件名推导),
这里同样可以根除,而不是再补三行:

本 issue 只记录,未改动任何文件。

顺带:一处 push / pull_request 不对称

pull_request.paths 里有 docs/qa/**,push.paths 里没有。
不影响本条结论,但同一个 workflow 的两个触发器过滤不一致,通常不是有意的。

复现(只读)

git show origin/main:scripts/qa.sh | sed -n '/^L1_TESTS=(/,/^)/p'
git show origin/main:.github/workflows/qa.yml   # 看 on.*.paths
git grep -c 'test686\|test765\|test766' origin/main -- '.github/**'

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions