AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Informational 15 Bitcoin

build: skip CI for docs-only changes and run a fast subset on drafts

Public commit record

What the developer wrote

Authored by ziggie

100/100 · Strong
build: skip CI for docs-only changes and run a fast subset on drafts

Every push to a PR currently runs the full CI matrix regardless of what
changed or whether the PR is still being iterated on. Introduce two
measures to cut down on wasted runners while keeping all jobs in
parallel, so a single run still reports as many failures as possible:

1. A ci-gate job runs first and detects documentation-only PRs, i.e.
PRs that only touch files under docs/ or markdown files. Renamed
files are checked under both their old and new name so that moving
a source file into docs/ doesn't count as a documentation change.
The cheap commit and release notes checks always run. The way the
other jobs are skipped depends on whether they have a matrix:

- Non-matrix jobs (static checks, lint) and non-required jobs are
skipped at the job level. A skipped job still reports its status,
so the required checks in branch protection are satisfied.
- Matrix jobs with required legs (unit tests, cross compilation,
pinned dependencies, basic itests) are kept instantiated and skip
their steps instead, in the same way the no-itest label already
works. A job-level condition is evaluated before the matrix is
expanded, so a skipped matrix job would never report the per-leg
check names that branch protection requires and the PR would
stay blocked.

All job-level conditions use !cancelled() so that a failure of the
gate job itself results in the full CI running rather than
everything being skipped.

2. Draft PRs only run a fast subset: static checks, lint, the pinned
dependency check, the non-race unit test legs and the basic itests
(18-22 min per leg). The large itests (up to 86 min per leg),
Windows and macOS itests, cross compilation, the race unit legs
(47-56 min) and the backwards compatibility test are skipped until
the PR is marked ready for review. ready_for_review and
converted_to_draft are added to the pull_request trigger types so
that changing the draft state triggers a run with the right subset;
the concurrency group cancels the previous one.

Push and merge_group runs carry no PR and always run everything.
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification
The short version

What changed, and why it matters

This commit only changes how the project's automated GitHub test pipeline is organized. It adds a 'gate' job that decides whether a pull request only touches documentation, and if so, skips the heavy code tests. It also makes draft pull requests run a smaller, faster set of tests. There is no change to the actual Lightning Network software, wallet logic, cryptography, or network handling, so it does not create a security vulnerability in the product users run.

Recommended action

No security action needed. This is a CI efficiency change. Reviewers may want to verify that the docs-only detection correctly handles renamed files and API failures, and that required checks still report status as intended, but these are workflow correctness concerns rather than security issues.

Security signals we found

No strong security signals were identified.

Risk score

Why this scored 15/100

Our methodology →
Potential impact 0/30
Exploitability 0/25
Stealth signal 0/15
Affected reach 0/15
Confidence 10/10
Evidence quality 5/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.