ci: skip Go jobs and add docs-site build for docs-only PRs#21045
Merged
Conversation
Mirrors the path-filter pattern from #21028 (which lands the same mechanism on main's ci-gate.yml). When a PR only touches docs/, root llms*.txt, or root *.md, skip linux/win Go test runs (~20-30 min saved per PR) and instead run a docs-site typecheck/build with the llms.txt drift + unittest guard. Detection happens via `gh api .../pulls/{n}/files` in a fast `changes` job; other jobs gate on its outputs. For push and workflow_dispatch events the changes job defaults code=true/docs_site=true so nothing is skipped on merge. Adds .github/workflows/docs-site-build.yml as a workflow_call leaf with a defensive guard for branches that predate docs/site/.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the main CI workflow to detect docs-only pull requests and skip the longer Go test jobs, while adding a dedicated docs-site typecheck/build job for changes under docs/site/**. It aims to reduce CI time for docs-only PRs and still validate the Docusaurus site when relevant.
Changes:
- Add a
changesjob in.github/workflows/ci.ymlthat classifies PRs as “code” vs “docs-only” and detects whetherdocs/site/**changed. - Gate
linux/winjobs onneeds.changes.outputs.code != 'false'to skip Go CI for docs-only PRs. - Add a new reusable workflow
.github/workflows/docs-site-build.ymland adocs-sitejob inci.ymlto runnpm ci/typecheck/buildwhendocs/site/**is touched.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| .github/workflows/ci.yml | Adds PR-file change detection and uses it to skip Go jobs for docs-only PRs; adds a docs-site job calling a reusable workflow. |
| .github/workflows/docs-site-build.yml | Introduces a reusable docs-site build workflow (Python guard + Node typecheck/build). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
The guard only checked for docs/site/package.json, but subsequent steps also require docs/site/scripts/generate-llms.py. On branches in a partial migration state the job would fail mid-run instead of skipping silently. Addresses Copilot review comments.
Agent-Logs-Url: https://github.com/erigontech/erigon/sessions/48c0aae7-7fce-4f48-911d-90773134e257 Co-authored-by: bloxster <40316187+bloxster@users.noreply.github.com>
AskAlexSharov
approved these changes
May 9, 2026
pull Bot
pushed a commit
to Dustin4444/erigon
that referenced
this pull request
May 13, 2026
## Summary Brings the full `docs/site/` Docusaurus tree into `main`, incorporating all documentation improvements developed against `release/3.4`. **Scope:** `docs/site/**` + root `llms.txt` / `llms-full.txt` + removal of superseded `docs/gitbook/` and `docs/gitbook-help/`. No changes to Go, proto, or any non-docs source files. ### Included — merged to release/3.4 | PR | What | |----|------| | [erigontech#20883](erigontech#20883) | Docusaurus v3 migration — full `docs/site/` tree, Docusaurus config, versioned v3.3 snapshot | | [erigontech#20263](erigontech#20263) / [erigontech#20264](erigontech#20264) | All v3.3 docs ported; branch/versioning convention established | | [erigontech#20978](erigontech#20978) | Mobile footer fix, SEO meta tags, OG image | | [erigontech#20991](erigontech#20991) | Self-host brand fonts (remove Google Fonts / CDN) | | [erigontech#21000](erigontech#21000) | `llms.txt` / `llms-full.txt` generator script + root artifacts | | [erigontech#21018](erigontech#21018) | May 2026 w19 maintenance — stale flags, broken links, accuracy fixes | | [erigontech#21045](erigontech#21045) | CI: docs-only path filter (skip Go jobs, run docs-site build) | | [erigontech#21063](erigontech#21063) | `trace` response fields reference + sync-monitoring guidance | | [erigontech#21074](erigontech#21074) | Regenerate `llms.txt` after sync-modes update | | [erigontech#20997](erigontech#20997) | Brand font consistency fix, installation page UX | ### Included — pending review on release/3.4 | PR | What | |----|------| | [erigontech#21030](erigontech#21030) | Automated disk size pipeline: `update-disk-sizes.py`, `disk-sizes.json`, `hardware-requirements.mdx` JSX fix, `generate-llms.py` `—` fallback, unit tests | | [erigontech#21129](erigontech#21129) | May 2026 w20 maintenance — `--caplin.nat`, `--caplin.columns-keep-slots`, RPC subscription defaults, `nat.md` Caplin section, log.dir.verbosity default | ### What changes on `main` - `docs/site/` added (full Docusaurus tree, current v3.4 + frozen v3.3 snapshot) - `docs/gitbook/` and `docs/gitbook-help/` removed (superseded by Docusaurus) - Root `llms.txt` and `llms-full.txt` updated to Docusaurus-generated versions >⚠️ This PR does **not** remove `docs/gitbook/` yet — that cleanup will be a separate commit once this PR is reviewed and approved. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Bloxster <bloxster@proton.me> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: lupin012 <58134934+lupin012@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Sibling of #21028 (which lands the same path-filter on
main'sci-gate.yml). When a PR only touchesdocs/, rootllms*.txt, or root*.md, skip thelinuxandwinGo test runs (~20-30 min saved per PR) and instead run a docs-site typecheck/build with the llms.txt drift + unittest guard.How it works
A new fast
changesjob callsgh api .../pulls/{n}/filesand emits two outputs:code—falseif every changed file is underdocs/, rootllms*.txt, or root*.md; otherwisetrue. Defaults totrueforpush/workflow_dispatchso nothing is skipped on merge.docs_site—truewhen anydocs/site/**file is touched.linuxandwinare gated oncode != 'false'. A newdocs-sitejob (calling the new reusabledocs-site-build.yml) runs whendocs_site == 'true'.If the
gh apicall fails, the step exits with code 1 — the gate fails rather than silently defaulting to skipping jobs.What runs when
*.go, etc.)docs/site/**)llms.txt,README.md)pushtomain/release/**File-pattern logic
A PR is docs-only (skips Go CI) when every changed file matches:
i.e. files under
docs/, root-levelllms*.txt, or root-level*.md. Nested.mdfiles (e.g.execution/README.md) still count as code changes.docs-site-build.ymlReusable
workflow_callleaf that:python3 docs/site/scripts/generate-llms.py --checkandpython3 -m unittest discover docs/site/scripts -v(the llms drift guard from [r3.4] docs: add llms.txt generator script and update root llms.txt #21000)npm ci,npm run typecheck,npm run buildagainstdocs/site/Has a defensive guard that skips silently if
docs/site/package.jsonordocs/site/scripts/generate-llms.pyis absent — covering both fully absentdocs/site/and partial migration states.Files
.github/workflows/ci.ymlpermissions: pull-requests: read,changesjob, gatelinux/winwithcode != 'false', adddocs-sitejob.github/workflows/docs-site-build.ymlTest plan
docs/site/docs/...) — confirmlinux/winare skipped anddocs-siteruns.gofile + one.mdfile) — confirm bothlinux/winanddocs-siterundocs-siteis skipped,linux/winrunrelease/3.4— confirm everything runs (no skipping)🤖 Generated with Claude Code