Skip to content

Skip CI/RTD builds when changes are irrelevant to each pipeline#4381

Merged
kyleconroy merged 1 commit intomainfrom
claude/skip-workflows-on-docs-changes
Apr 17, 2026
Merged

Skip CI/RTD builds when changes are irrelevant to each pipeline#4381
kyleconroy merged 1 commit intomainfrom
claude/skip-workflows-on-docs-changes

Conversation

@kyleconroy
Copy link
Copy Markdown
Collaborator

Summary

  • Add paths-ignore: ['docs/**', '.readthedocs.yaml'] to the go, buf, kotlin, python, and typescript workflows — doc-only PRs no longer spin up the Go test matrix.
  • Add a Read the Docs post_checkout job that exits 183 (RTD's documented "cancel build successfully" code) when a PR build doesn't touch docs/ or .readthedocs.yaml. Mirrors the GitHub-side filter so Go-only PRs don't burn an RTD build.

How the RTD gate works

RTD doesn't expose path filters in config, but their build system honors exit code 183 from any jobs.* hook as "cancel this build, mark it successful." The post_checkout step diffs HEAD against origin/main for docs/ + .readthedocs.yaml; if nothing changed there on a PR build (READTHEDOCS_VERSION_TYPE=external), the build exits early.

Caveat — required status checks

If any of the go / test, buf / build, etc. checks are configured as required in branch protection, a doc-only PR will block waiting for them to report. Two follow-up options:

  • Make those checks non-required, or
  • Add a companion workflow with the same job name that runs under the inverse paths: filter and no-ops, so the check always reports.

Test plan

  • Open a doc-only PR; confirm Go/buf/language workflows are skipped and RTD still builds
  • Open a Go-only PR; confirm RTD build is cancelled with exit 183 and Go workflows run normally
  • Mixed PR (touches both) runs everything

🤖 Generated with Claude Code

- Add paths-ignore for docs/** and .readthedocs.yaml to the go, buf,
  kotlin, python, and typescript workflows so doc-only PRs don't
  spin up the Go test matrix.
- Add a Read the Docs post_checkout hook that exits 183 (the
  documented "cancel build successfully" code) for PR builds that
  don't touch docs/ or .readthedocs.yaml, mirroring the inverse on
  the RTD side.

Note: if any of the skipped checks are currently listed as required
in branch protection, doc-only PRs will block waiting for them. Flip
those to non-required, or add a matching no-op workflow that runs
under the ignored paths, as a follow-up.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
utafrali

This comment was marked as spam.

@kyleconroy kyleconroy merged commit bba5fc9 into main Apr 17, 2026
13 checks passed
@kyleconroy kyleconroy deleted the claude/skip-workflows-on-docs-changes branch April 17, 2026 05:00
khepin added a commit to khepin/sqlc that referenced this pull request Apr 18, 2026
…te-order-by-args

* 'main' of https://github.com/sqlc-dev/sqlc:
  Map xid8 to pgtype.Uint64 for pgx/v5 (sqlc-dev#4387)
  Rename :one return variable when it conflicts with a parameter (sqlc-dev#4383)
  Coerce SQLite JSONB output regardless of type casing (sqlc-dev#4385)
  Dedupe sqlc.arg parameters wrapped in a type cast for MySQL (sqlc-dev#4384)
  Preserve MySQL optimizer hints in generated query text (sqlc-dev#4382)
  Skip CI/RTD builds when the change is irrelevant (sqlc-dev#4381)
  build(deps): bump the production-dependencies group across 1 directory with 11 updates (sqlc-dev#4380)
  build(deps): bump the production-dependencies group across 1 directory with 5 updates (sqlc-dev#4368)
  build(deps): bump pygments from 2.19.2 to 2.20.0 in /docs (sqlc-dev#4363)
  build(deps): bump requests from 2.32.5 to 2.33.0 in /docs (sqlc-dev#4357)
  Remove github.com/jackc/pgx/v4 dependency (sqlc-dev#4379)
  Upgrade Go toolchain to 1.26.2 (sqlc-dev#4378)
  build(deps): bump actions/upload-artifact from 6 to 7 (sqlc-dev#4320)
  docs: add sqlc-gen-sqlx to community language support (sqlc-dev#4371)
  build(deps): bump github.com/jackc/pgx/v5 from 5.8.0 to 5.9.0 (sqlc-dev#4377)
  Catch invalid ON CONFLICT DO UPDATE column references (sqlc-dev#4366)
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.

2 participants