Problem
`check-test-pr`'s (`.github/workflows/ci.yml`) paired-PR verification does:
```js
const failed = runs.filter(
r => !['success', 'skipped', 'neutral'].includes(r.conclusion)
);
if (failed.length > 0) {
core.setFailed(
`pgxntool-test PR #${testPR.number} CI failed for SHA ${sha.slice(0, 7)}: ${names}`
);
return;
}
```
This inspects every check run on the paired pgxntool-test PR's head SHA -- including automated review bots like `claude-review` and `CodeRabbit`, not just the actual `test` matrix jobs. If an unrelated bot check fails (see Postgres-Extensions/pgxntool-test#33 -- `claude-review` currently fails deterministically on every fork PR due to a separate misconfiguration), `check-test-pr` reports the whole pairing as failed even though the real tests passed.
Confirmed
pgxntool PR #61's `check-test-pr` failed with:
```
pgxntool-test PR #31 CI failed for SHA 56e6b14: claude-review (failure)
```
while every actual `test / PostgreSQL ` job on that same PR passed.
Ask
Filter `check-test-pr`'s completeness/failure check to only the check runs that actually matter for correctness (the `test` matrix jobs, and whatever else genuinely gates merge), rather than every check run present on the paired PR's SHA. Needs a decision on the right filter -- by job name pattern (e.g. `test /*`), by workflow name, or an explicit allowlist/denylist.
Related
Postgres-Extensions/pgxntool-test#33 (root cause of the specific claude-review failure this surfaced with)
Problem
`check-test-pr`'s (`.github/workflows/ci.yml`) paired-PR verification does:
```js
const failed = runs.filter(
r => !['success', 'skipped', 'neutral'].includes(r.conclusion)
);
if (failed.length > 0) {
core.setFailed(
`pgxntool-test PR #${testPR.number} CI failed for SHA ${sha.slice(0, 7)}: ${names}`
);
return;
}
```
This inspects every check run on the paired pgxntool-test PR's head SHA -- including automated review bots like `claude-review` and `CodeRabbit`, not just the actual `test` matrix jobs. If an unrelated bot check fails (see Postgres-Extensions/pgxntool-test#33 -- `claude-review` currently fails deterministically on every fork PR due to a separate misconfiguration), `check-test-pr` reports the whole pairing as failed even though the real tests passed.
Confirmed
pgxntool PR #61's `check-test-pr` failed with:
```
pgxntool-test PR #31 CI failed for SHA 56e6b14: claude-review (failure)
```
while every actual `test / PostgreSQL ` job on that same PR passed.
Ask
Filter `check-test-pr`'s completeness/failure check to only the check runs that actually matter for correctness (the `test` matrix jobs, and whatever else genuinely gates merge), rather than every check run present on the paired PR's SHA. Needs a decision on the right filter -- by job name pattern (e.g. `test /*`), by workflow name, or an explicit allowlist/denylist.
Related
Postgres-Extensions/pgxntool-test#33 (root cause of the specific claude-review failure this surfaced with)