Repository navigation
Dynamic CI: a complete GitHub Actions setup guide - #454
Merged
Merged
Conversation
Rewrite the GitHub Actions setup page around the gating patterns trunk2 runs on its own workflows: a complete example, the rules every gated job must follow, required checks, which events to filter, every action input, and how to check the setup in the Issues tab. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
- Updated ci/dynamic-ci/getting-started/index.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/index.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/index.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/index.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/index.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/index.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/index.mdx - Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx Mintlify-Source: dashboard-editor
- Updated ci/dynamic-ci/getting-started/github-actions.mdx - Updated ci/dynamic-ci/configuration.mdx - Created ci/dynamic-ci/dynamic-ci-action-reference.mdx - Updated docs.json Mintlify-Source: dashboard-editor
This was referenced Nov 4, 2026
This branch was successfully deployed
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.
Why
The GitHub Actions page showed how to add the filter job and one gated job. It did not tell anyone what goes wrong when a gate is miswired, and most of the ways a gate goes wrong are silent. Customers and their coding agents read this page, through
llms.txtandllms-full.txt, to set up Dynamic CI, so it should be complete enough to copy from and check against.The page is now built from what trunk2 runs on its own workflows (
pr-ts.yaml,pr-rs-nix-tests.yaml,pr-tap-lint.yaml) and from the checks behind the Dynamic CI Issues tab (github-actions-parser'sanalyze_dynamic_ci).What changed
ci-passed) to mark as the required check.!cancelled():name:.needs.!cancelled().!= 'false', and join other conditions with&&, never||.on.pathsfilters leave a workflow's required checks pending.needthe filter job, so a Trunk outage cannot fail the required check. This is the same shape as trunk2'sconclusionandunit-tests-gatejobs.trunk-merge/**andmerge_group), pushes to the default branch, and forks.action.yaml.enable-annotation, the Issues tab, then Learning mode before enforcement.description. It is the linellms.txtshows for this page.Choices worth a look
!cancelled()is now a rule, not just part of the example. The old example had it, but nothing said why. Without it, a failed filter job (a bad token, an outage) makes GitHub skip every gated job, so nothing is tested. This is the one mistake that fails closed instead of open.main. The engine treats a push to the default branch like a pull request (laneOfin trunk2'sts/packages/dynamic-ci/src/serving.ts). A customer who filtersmaincan have jobs skipped after a merge. Skipping the filter job there leaves the outputs empty, so every gated job runs. I did not gate the jobs ongithub.refinstead, because a condition joined with||is exactly what the Issues tab flags as "never skips".dorny/paths-filterfor the merge queue, although trunk2 uses it. That is our internal choice. Customers get the same result from path filters in Dynamic CI configuration, which is what the Merge queues page already describes.impactsaccordion now says the signal is off until we turn it on. Before, it read as though sending the field changes verdicts.llms.txt. Mintlify buildsllms.txtfrom page descriptions and has no per-section file. A checked-in one replaces the whole site's index, and that index then has to be kept up to date by hand. Putting the guidance on the page reachesllms-full.txtand the page's.mdview as well.Verification
analyze_dynamic_ci, using a throwaway test.unit-tests,integration-testsande2eall come outGatedwith no problem, so a customer who copies it gets an empty Issues list.Not in this PR
v0.1.5, butimpactsneedsv0.1.8.🤖 Generated with Claude Code
Mintlify
76 threads from 1 user in Mintlify