Skip to content

fix(ci): stop the docs-only filter skipping checks that depend on the change - #13471

Open
oc-tmueller wants to merge 2 commits into
owncloud:masterfrom
oc-tmueller:ci/docs-only-filter-gaps
Open

oc-tmueller wants to merge 2 commits into
owncloud:masterfrom
oc-tmueller:ci/docs-only-filter-gaps

Conversation

@oc-tmueller

Copy link
Copy Markdown
Contributor

Problem

detect-changes classifies a PR as docs-only from its changed paths. Docs-only skips build-and-test and every
acceptance job, and the required all-acceptance-tests gate passes. Some paths it treats as docs are inputs to
checks:

  • deployments/examples/ocis_ldap/config/ldap/ holds the LDAP seed and schemas that the external LDAP
    acceptance tests mount (tests/ldap-smoke/run.sh, tests/ldap-smoke-distributed/docker-compose.yml). A PR
    that changes only those files skips the very tests that use them.
  • changelog/* is docs-only, but make changelog-lint ran only inside build-and-test, so changelog-only
    PRs were never linted.
  • Renames: git diff --name-only lists only a renamed file's new path, so moving a file into docs/ or
    deployments/ counted as docs-only.

Fix

  • A change under deployments/examples/ocis_ldap/config/ldap/ makes the PR non-docs-only. The rest of
    deployments/ stays docs-only; the deployment examples have their own deployment-test.yml.
  • make changelog-lint moves from build-and-test to a step in detect-changes, so it runs on every PR. It is
    plain shell (no toolchain), and every one of the 1,702 current entries passes.
  • The gate now fails first when detect-changes did not succeed. Before, it exited 0 on docs-only without looking
    at any result, so the lint would not have been enforced.
  • git diff --no-renames, so a rename is classified by both its old and new path.

A lint failure on a code PR still keeps the test jobs from starting, as it did through build-and-test. A pure
docs move out of a code directory now runs full CI; that is the conservative side of the rename fix.

Related: #13469 fixes the same gate passing when build-and-test itself fails. Both PRs edit the gate step in
adjacent places, so whichever merges second needs a trivial rebase.

🤖 Generated with Claude Code

oc-tmueller and others added 2 commits November 13, 2026 11:30
detect-changes treats some paths as docs-only even though checks depend on
them, so PRs touching only those paths skipped the checks and the required
gate passed:

- deployments/examples/ocis_ldap/config/ldap holds the LDAP seed and schemas
  that the external LDAP acceptance tests mount (tests/ldap-smoke/run.sh,
  tests/ldap-smoke-distributed/docker-compose.yml). A change there now runs
  the acceptance tests. The rest of deployments/ stays docs-only; the
  deployment examples have their own deployment-test workflow.
- changelog/* is docs-only, but changelog-lint ran only inside
  build-and-test, so changelog-only PRs were never linted. Run it in
  detect-changes instead, for every PR. A lint failure still keeps the test
  jobs from starting, as it did via build-and-test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: oc-tmueller <323649642+oc-tmueller@users.noreply.github.com>
- all-acceptance-tests exited 0 on docs-only before looking at any result,
  so a failing changelog lint in detect-changes did not block a
  changelog-only PR. Fail the gate first when detect-changes did not
  succeed.
- git diff --name-only lists only the new path of a rename, so moving a
  code or LDAP fixture file into docs/ or deployments/ counted as
  docs-only. Use --no-renames so both paths are classified.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: oc-tmueller <323649642+oc-tmueller@users.noreply.github.com>
@oc-tmueller
oc-tmueller requested a review from a team as a code owner November 13, 2026 10:35
@kw-security

kw-security commented Nov 13, 2026 •

Copy link
Copy Markdown

✅ Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
✅ Open Source Security 0 0 0 0 0 issues
✅ Licenses 0 0 0 0 0 issues
✅ Code Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants