Skip to content

Report required CI checks for skipped paths - #9498

Open
CyrilWaechter wants to merge 2 commits into
v0.9.0from
ci-report-required-checks
Open

CyrilWaechter wants to merge 2 commits into
v0.9.0from
ci-report-required-checks

Conversation

@CyrilWaechter

Copy link
Copy Markdown
Contributor

compile-and-test (ON) / (OFF) are required checks, but they come from ci.yml, whose top-level paths: filter excludes src/bonsai/**. A workflow skipped by path filtering leaves its required checks in a "Pending" state forever, so Bonsai-only pull requests are permanently blocked (and show only lint-formatting). Identical pattern on #9479, #9489, #9491, #9494.

Change

  • Remove the top-level paths: filter so ci.yml always triggers.
  • Add a lightweight changes job (dorny/paths-filter@v4) that reproduces the previous list of relevant paths.
  • Gate the heavy compile-and-test matrix job with if: needs.changes.outputs.code == 'true'.

Per GitHub's documented behavior, a job skipped by a conditional reports Success, whereas a workflow skipped by path filtering does not. So:

  • library paths changed -> full build runs exactly as before;
  • only src/bonsai/** (or docs, etc.) changed -> compile-and-test is skipped and its required checks pass, unblocking the PR.

Build reuse is unchanged: the existing ccache action already reuses compiled objects across runs.

Verification

This PR only touches .github/workflows/ci.yml, which is in the filtered list, so the full compile-and-test run is exercised here. The skip path will be exercised by a later src/bonsai/**-only PR.

This PR is AI-generated.

The required compile-and-test checks come from ci.yml, which is
path-filtered. A workflow skipped by path filtering leaves its
required checks pending forever, so bonsai-only pull requests were
blocked. Trigger the workflow unconditionally, detect relevant
changes in a changes job, and skip the heavy matrix job with an if
condition (a job skipped by a conditional is reported as success).

Generated with the assistance of an AI coding tool.
dorny/paths-filter only applies negated ('!') rules with the
some-with-excludes predicate quantifier. With the default 'some',
the '!src/ifcopenshell-python/docs/**' rule makes the filter match
every file outside docs, so unrelated changes (e.g. a new workflow
file) incorrectly trigger the full build.

Generated with the assistance of an AI coding tool.
@CyrilWaechter

Copy link
Copy Markdown
Contributor Author

Posted the full comparison over on #9454 so the alternatives sit in one place: #9454 (comment)

Short version: #9454 and this PR touch the same lines in ci.yml, so only one should land. This is the variant that keeps the pull_request path filter (skips the heavy build on Bonsai/docs-only PRs); #9454 drops the filter for PRs instead. Happy to close this one if maintainers prefer the simpler route.

@CyrilWaechter CyrilWaechter added the github_actions Pull requests that update GitHub Actions code label Sep 15, 2026
@CyrilWaechter
CyrilWaechter added this pull request to stack #9503 September 15, 2026 11:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant