Skip to content

[ci] Do not skip full CI solely from a docs-prefixed PR title #402

Description

@ting-hong-shieh

Symptom

A pull request whose title starts with docs skips every substantive CI job, even when the diff contains Rust or Python code.

.github/workflows/ci.yml currently:

  • forces full_ci to false when startsWith(github.event.pull_request.title, 'docs');
  • skips the path-classification step under the same condition; and
  • allows the aggregate CI Success job to pass when its dependencies are skipped, because it fails only on failure or cancelled.

A mixed or code-only PR titled docs: ... can therefore satisfy the required aggregate check without running lint, SPDX validation, Rust checks, mypy, Python tests, or the install smoke test.

Reproduction

  1. Open a pull request that changes a Rust or Python source file.
  2. Give it a title beginning with docs, for example docs: update parser behavior.
  3. Observe that Detect non-documentation changes is skipped and full_ci resolves to false.
  4. Observe that the substantive jobs are skipped while CI Success succeeds.

This is based on workflow expression evaluation; no provider credentials or external services are involved.

Expected vs. actual

  • Expected: Whether full CI runs is determined from changed paths. A title may describe a PR, but it should not override a code-bearing diff.
  • Actual: The docs title prefix bypasses path detection and all code gates.

Proposed fix

Always run dorny/paths-filter for pull requests and derive full_ci from changed paths only. If the title shortcut was added for a narrower generated-docs workflow, scope that behavior to the relevant paths instead of the PR title.

Environment

  • Workflow: .github/workflows/ci.yml on b256d936f1d77bf13ec9bec399ea0a253e07ca05
  • Event: pull_request

Additional context

This conflicts with CONTRIBUTING.md, which says all code must pass the listed gates. PR #126 introduced path-based documentation-only skipping; PR #254 later added the title shortcut. Neither tracks a current fix.

I searched open and closed issues and pull requests for docs prefix skip CI, startsWith pull_request.title, docs-only title full_ci, Detect code changes docs title, and full_ci docs; I found no matching report or in-flight fix.

I'm happy to send the small workflow patch if maintainers agree that paths should be authoritative.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions